【SQL】WHERE 〜 GROUP BY【順序が逆だと動きません】

SQL

構文

SELECT  [カラム1]  FROM  [テーブル]  GROUP BY  [カラム2];

GROUP BYWHERE句の順序が逆だと動かないので注意してください。

GROUP BY 〜 WHEREで特定のレコードを集計する例

以下に例を示します。

事前準備

テーブルを作ります

CREATE TABLE test (id INTEGER NOT NULL AUTO_INCREMENT,name VARCHAR(20) NOT NULL, PRIMARY KEY(id));

次にリンゴ、オレンジ、バナナを登録しておきます

INSERT INTO test (name) VALUES('Apple');
INSERT INTO test (name) VALUES('Orange');
INSERT INTO test (name) VALUES('Banana');
INSERT INTO test (name) VALUES('Apple');
INSERT INTO test (name) VALUES('Orange');
INSERT INTO test (name) VALUES('Banana');

準備完了

GROUP BY 〜 WHERE句を使う準備

準備したテーブルの内容は以下の通りです。

+----+--------+
| id | name   |
+----+--------+
|  1 | Apple  |
|  2 | Orange |
|  3 | Banana |
|  4 | Apple  |
|  5 | Orange |
|  6 | Banana |
+----+--------+

GROUP BY 〜 WHERE句で果物を集計する例

リンゴの数を集計します。集計にはCOUNT()関数を使います。

SELECT name,COUNT(name) FROM test WHERE name = 'Apple' GROUP BY name;

集計結果は以下の通りです。
[実行結果]

+-------+-------------+
| name  | COUNT(name) |
+-------+-------------+
| Apple |           2 |
+-------+-------------+

今回は以上です。

本記事の内容は、実際に手を動かしてみることをオススメします。

コピペで簡単に実行できますのでぜひ試して下さい。

最後に構文をおさらい

SELECT  [カラム1]  FROM  [テーブル]  GROUP BY  [カラム2];

今、ITエンジニアは前例のない売り手市場です

ITエンジニアは前例のない売り手市場、転職なら今

現在のエンジニアの求人数と求人倍率をご存知ですか?

直近(※)のIT業界全体の求人倍率は7.85倍です。

つまり 企業が8回 IT人材の求人を出しても、 1人しかエントリーがない 状況です。

エンジニア側が企業を選ぶ なら、今がチャンスです。

※転職サイトdodaが毎月発表している転職求人倍率。
 2019年12月9日発表/集計対象期間は2019年11月1日〜30日

詳しくはこちら