こんにちは、エンジニアのやまとです。
今回は、MySQLのコマンドで数値集計する方法の基本を伝授したいと思います。
SQLコマンドは難しそうに見えますが、実はとても簡単です。僕の前職では、営業さんなどエンジニアでない方もSQLをバシバシ叩いて活用していたくらいです(笑)初心者の方でもすぐに覚えられる内容なので、基本を押さえたいという方はぜひご覧ください!
- MySQLとは?
- MySQLは、世界でもっとも使われている、オープンソースのデータベースです。WordPressでも採用されており、弊社の記事でもよく紹介されています。
MySQLにおける集計の基本的な考え方
MySQLでは、以下のような考え方でデータを集計します。
SELECT | なにを |
---|---|
FROM | どこから |
WHERE | どのように |
ORDER BY | ◯◯順に |
GROUP BY | ◯◯ごと |
それでは、実際にそれぞれのコマンドの書き方とイメージ図を見ていきましょう!
※ちなみに当記事では
- 「テーブルA」などをサンプルのテーブル
- 「F1、F2」などをサンプルのフィールド
としています。
MySQLのコマンドの書き方
SELECT
どのフィールドのデータが欲しいかを選びます。
書き方
SELECT F1,F2 FROM テーブルA;
こちらではひとつ、または複数データを読み込みます。今回は、F1、F2のカラムを指定していますが、
SELECT * FROM テーブルA;
とすると全てのデータをテーブルごと持ってこれます。
FROM
上記SELECTの説明にも、すでに出てきていますね。
どのテーブルからデータが欲しいかをここで指定します。
FROMの後にテーブル名を入力しましょう!
WHERE
いろいろな条件によって絞り、データを読み込むことができます。
書き方
1つの条件を指定する場合は、次のようになります。
SELECT * FROM テーブルA WHERE F1='a';
複数の条件を指定する場合は、次のようになります。
SELECT * FROM テーブルA WHERE F1='a' AND F2 ='a';
SELECT * FROM テーブルA WHERE F1='a' OR F2 ='a';
▲ 「SELECT * FROM テーブルA WHERE F1=’a’ AND F2 =’a’;」の結果
ひとつのフィールドから文字を複数指定する場合は、次のように「IN」を使います。
SELECT * FROM テーブルA WHERE F1 IN (a,b)
ある程度の範囲内を条件にしてデータを読み込む場合は、次のように「BETWEEN」を使います。
SELECT F1 FROM テーブルA WHERE F1 BETWEEN 1 AND 3;
次は、よりあいまいな条件でデータを読み込んでみましょう。
下記の「LIKE」は文字列と一致するかを比較する関数で、「%」は「0文字以上の任意の文字列」の意味です。そのため、「LIKE ‘東京都%’」で「東京都から始まる文字列すべて」を対象とすることができます。
SELECT F1 FROM テーブルA WHERE F1 LIKE '東京都%';

ORDER BY
昇順、または降順の並びでデータを読み込みます。
書き方
昇順の並びでデータを読み込みます。
SELECT * FROM テーブルA ORDER BY F1 ASC;
降順の並びでデータを読み込みます。
SELECT * FROM テーブルA ORDER BY F1 DESC;
GROUP BY
特定の列をキーにして合計値や平均値などのデータを読み込みます。
今回は関数も使ってみましょう。
書き方
グループごとの数を出すときはこちらです。下記では、性別ごとに【GROUP BY 性別】、国籍の数の合計【COUNT(国 籍)】を求めることができます。
SELECT 性別,COUNT(国 籍) FROM テーブルA GROUP BY 性別;
グループごとの合計を出すときはこちらです。下記では、品物ごとに【GROUP BY 品物】、値段の合計額【SUM(値段)】を求めることができます。
SELECT 品物,SUM(値段) FROM テーブルA GROUP BY 品物;
グループごとの平均を出すときはこちらです。下記では、性別ごとに【GROUP BY 性別】、年齢の平均値【AVG(年齢)】を求めることができます。
SELECT 性別,AVG(年齢) FROM テーブルA GROUP BY 性別;
さいごに
いかがでしたか?
今回は、単一テーブル内で集計する方法のみを紹介しましたが、実際には複数テーブルをJOIN(結合)して集計するJOIN句などもたくさん使われます。次回はJOINを始め、UNIONやその他小技を紹介しようかと思っているので、どうぞご期待ください!
それでは(・▽・)ノ
LIGはWebサイト制作を支援しています。ご興味のある方は事業ぺージをぜひご覧ください。