集める・数える

INPUT · スライド

集める・数える 総合演習

01 / 03

この章で手に入れた道具

ならべて見返してみよう。

  • 重複を消す … DISTINCT
  • 列どうしを計算する … + - * /
  • まとめて1つの値にする … SUM / AVG / COUNT / MAX / MIN
  • グループに分ける … GROUP BY
  • グループを絞る … HAVING

1つずつは短い。組み合わせて使えるかが本番だよ。

02 / 03

書く順番は決まっている

クエリはいつも同じ順に並ぶ。迷ったらこの形に当てはめよう。

SELECTFROMWHERE 行の条件 GROUP BY 基準 HAVING グループの条件 ORDER BY 並び LIMIT 件数

いらない部分は書かなくていいけれど、順番を入れかえることはできないよ。

SELECT stall, SUM(price * sold)  FROM sales  WHERE price >= 600  GROUP BY stall  HAVING SUM(price * sold) >= 9000  ORDER BY SUM(price * sold) DESC;

実行結果

つむぎ雑貨 | 21000
ゆらり工房 | 9600

03 / 03

問題は6つに分けて読む

長い問題文でも、聞かれているのはこれだけ。

  • どの列を見せる? 計算は必要?
  • どの行にしぼる?(WHERE
  • なにでまとめる?(GROUP BY
  • どんな集計を出す?
  • どのグループを残す?(HAVING
  • どの順に、何件まで?

この順にメモしてから書けば、長い問題もこわくない。手づくり市の sales で力だめしをしよう。