読者です 読者をやめる 読者になる 読者になる

プログラミングでアイデアを具現化したい

あらゆるものを具現化するためにプログラミングを始めました。主にC#

SQL HAVING句


スッキリわかる SQL 入門 ドリル215問付き! (スッキリシリーズ) より


f:id:tos5511:20160202000029p:plain

SELECT 費目, SUM(出金額) AS 費目別の出金額の合計
  FROM 家計簿
 GROUP BY 費目
HAVING SUM(出金額) > 0  --合計値が0 より大きいグループを抽出

実行結果
f:id:tos5511:20160202000147p:plain

WHEREではSUM()やMAX()などの集計関数を使えない。
まだ集計が終わってないから、らしい。
その代わり上記のHAVINGで同じように絞り込みが出来る。

グループ化してから絞り込む基本構文

SELECT グループ化の基準列名・・,集計関数
 FROM テーブル名
 (WHERE 元の表に対する絞り込み条件)
 GROUP BY グループ化の基準列名・・
HAVING 集計結果に対する絞り込み条件

HAVINGとWHEREの絞り込みのタイミングの違い
f:id:tos5511:20160202000643p:plain

このSQLドリルも40%程度まで来た。
都度記事に書き起こす勉強法は中々良いかもしれない。