前回に引き続き、SQLのクエリまとめをサクッとしていきます。
基本情報技術者試験の学習中にデータベースの扱い方で、SQL文が出てきて「まとめておいてよかったー」となったので、基本的なクエリについてもう少しまとめておきます。
DISTINCT
- 検索結果から重複するデータを除くことができる
SELECT DISTINCT(カラム名)
productsテーブルのnameカラムの重複を除く
SELECT DISTINCT(name)
FROM products;
GROUP BY
- データをグループ化できる
GROUP BY カラム名
- SELECTで使えるのは、
集計関数とカラム名のみ
priceの合計を日別でグループ化
SELECT SUM(price), producted_at
FROM products
GROUP BY producted_at;
HAVING
- グループ化したデータを更に絞り込める
GROUP BY カラム名 HAVING 条件;
priceの合計を日別でグループ化して、1000円以上のもののみ
SELECT SUM(price), producted_at
FROM products
GROUP BY producted_at
HAVING SUM(price) >= 1000;
関数
関数を使うことで、集計がかんたんにできる!
SUM関数
- 数値の合計を計算
SUM(カラム名)
categoryが、カレーの商品の合計金額
SELECT SUM(price)
FROM products
WHERE category = "カレー";
AVG関数
- 数値の平均を計算
AVG(カラム名)
categoryが、ラーメンの商品の平均金額
SELECT AVG(price)
FROM products
WHERE category = "ラーメン";
COUNT関数
- 指定したカラムのデータの合計数を計算
COUNT(カラム名)
categoryが、ラーメンの商品のデータ数
SELECT COUNT(*)
FROM products
WHERE category = "ラーメン";
MAX・MIN関数
- 指定したカラムの最大、最小のデータを取得
MAX(カラム名)
MIN(カラム名)
priceが一番高い商品のデータ
SELECT MAX(price)
FROM products;
categoryが、ラーメンの商品の中で、1番安い商品のデータ
SELECT MIN(price)
FROM products
WHERE category = "ラーメン";
さいごに
直接SQL文を書くことはそんなにないですが、ログを見てどういうデータを取得しているかがわかるので、いい勉強になります。