##DISTINCT
検索結果から重複するデータを除くことができる。
-# purchasesテーブルからnameが重複するデータを除いたデータの表示。
SELECT DISTINCT(name)
FROM purchases;
##四則演算
SQLでは四則演算が可能。
-# purchasesテーブルから「name」、「price」、「price * 1.08」のデータの取得。
SELECT name, price, price * 1.08
FROM purchases;
##SUM関数
数値の合計を計算する場合に使用。
-# purchasesテーブルのpriceの合計値のデータを取得する。
SELECT SUM(price)
FROM purchases;
##AVG関数
数値の平均を計算する場合に使用。
-# purchasesテーブルのpriceの平均値のデータを取得する。
SELECT AVG(price)
FROM purchases;
##COUNT関数
指定したカラムのデータの合計数を計算する。NULLは計算されない。COUNT(*)ではNULLも含めて計算する。
-# purchasesテーブルのNULLを含めないnameデータの数の取得。
SELECT COUNT(name)
FROM purchases
-# purchasesテーブルのNULLを含めたnameデータの数の取得。
SELECT COUNT(*)
FROM purchases;
##MAX・MIN関数
MAXを使うと最大のデータを、MINを使うと最小のデータを取得する。
-# purchasesテーブルのpriceの最大値のデータを取得。
SELECT MAX(price)
FROM purchases;
-# purchasesテーブルのpriceの最小値のデータを取得。
SELECT MIN(price)
FROM purchases;
##GROUP BY
データのグループ化をすることができる。
-# purchasesテーブルのpurchased_atごとのpriceの合計のデータを取得する。
SELECT SUM(price), purchased_at
FROM purchases
GROUP BY purchased_at
;
##WHEREとGROUP BY
併用する場合はWHEREを先に記入する。
-# purchasesテーブルのcharacter_nameが犬であるデータをpurchased_atでグループ化し、priceの合計、purchased_atのデータを取得。
SELECT SUM(price), purchased_at
FROM purchases
WHERE character_name = “犬”
GROUP BY purchased_at
;
##HAVING
GROUP BYでグループ化したデータを更に絞り込むときに使用。WHEREはグループ化される前のテーブル全体を検索対象にし、HAVINGはGROUP BYによってグループ化されたデータを検索対象とする。
-# purchasesテーブルをpurchased_atでグループ化し、priceの合計が2000以上のデータを取得。
SELECT SUM(price), purchased_at
FROM purchases
GROUP BY purchased_at
HAVING SUM(price) > 2000
;