のポイントがわかります GROUP BY x
しかし、どのように機能し
GROUP BY x, y
、それはどういう意味ですか?
のポイントがわかります GROUP BY x
しかし、どのように機能し
GROUP BY x, y
、それはどういう意味ですか?
回答:
Group By X
Xの値が同じものをすべて1つのグループに入れることを意味します。
Group By X, Y
XとYの両方に同じ値を持つものをすべて1つのグループに入れることを意味します。
例を使用して説明するために、大学のどの科目に誰が参加しているかについて、次の表があるとします。
Table: Subject_Selection
Subject Semester Attendee
---------------------------------
ITB001 1 John
ITB001 1 Bob
ITB001 1 Mickey
ITB001 2 Jenny
ITB001 2 James
MKB114 1 John
MKB114 1 Erica
group by
件名列のみを使用する場合、いう:
select Subject, Count(*)
from Subject_Selection
group by Subject
次のようなものが得られます:
Subject Count
------------------------------
ITB001 5
MKB114 2
... ITB001には5つのエントリ、MKB114には2つのエントリがあるため
group by
2列にした場合:
select Subject, Semester, Count(*)
from Subject_Selection
group by Subject, Semester
私たちはこれを得るでしょう:
Subject Semester Count
------------------------------
ITB001 1 3
ITB001 2 2
MKB114 1 2
これは、2つの列でグループ化すると、「同じ科目と学期を持つすべてのグループが同じグループになるようにグループ化し、すべての集計関数(カウント、合計、平均など)を計算するためです。 )「これらのグループのそれぞれについて。この例では、これをカウントすると、3名が1学期にITB001を行い、2名が2学期にITB001を行うため、MKB114を行う両方の人が1学期にいるため、セメスター2の行(グループ「MKB114、セメスター2」に該当するデータはありません)
うまくいけば、それは理にかなっています。
GROUP BY A,B
同じことGROUP BY B,A
ですか?
GROUP BY a, b
と、GROUP BY a AND b
二番目だけのリストにグループ化まったく同じ内容を持つアイテムなし「undergroups」以来で。この場合、出力は最初の出力と同じになります。
このGROUP BY
句は、1つ以上の列によって結果セットをグループ化するために、集計関数と組み合わせて使用されます。例えば:
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;
この順序を覚えておいてください:
1)SELECT(データベースからデータを選択するために使用されます)
2)FROM(句はテーブルをリストするために使用されます)
3)WHERE(句はレコードのフィルタリングに使用されます)
4)GROUP BY(句をSELECTステートメントで使用して、複数のレコードにわたるデータを収集し、結果を1つ以上の列でグループ化できます)
5)HAVING(句をGROUP BY句と組み合わせて使用して、返される行のグループを条件がTRUEである行のみに制限します)
6)ORDER BY(キーワードは結果セットのソートに使用されます)
集約関数を使用している場合は、これらすべてを使用できます。これは、集合関数を設定する必要がある順序です。そうしないと、エラーが発生する可能性があります。
集計関数は次のとおりです。
MINは、指定された列の最小値を返します
SUMは、指定された列の数値の合計を返します
AVGは指定された列の平均値を返します
COUNTは、指定された列の値の総数を返します
COUNT(*)はテーブルの行数を返します