| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

DB2 GROUP BY 拡張

提供: MyMemoWiki
ナビゲーションに移動 検索に移動

DB2 GROUP BY 拡張

DB2 |

ROLLUP

  • グループごとのサマリーを作成
  1. SELECT t.name AS tour_name,
  2. c.name AS county_name,
  3. COUNT(*) AS falls_count
  4. FROM upfall u INNER JOIN trip t
  5. ON u.id = t.stop
  6. INNER JOIN county c
  7. ON u.county_id = c.id
  8. GROUP BY ROLLUP(t.name, c.name);
  1. TOUR_NAME COUNTY_NAME FALLS_COUNT
  2. ---------- ----------- ----------------------
  3. M-28 Alger 3
  4. M-28 Baraga 1
  5. M-28 Ontonogan 2
  6. M-28 6
  7. US-2 Delta 1
  8. US-2 Gogebic 1
  9. US-2 Dickenson 1
  10. US-2 Ontonogan 1
  11. US-2 4
  12. Munising Alger 6
  13. Munising 6

CUBE

  • 指定列のすべての可能な組み合わせサマリ
  1. SELECT t.name AS tour_name,
  2. c.name county_name,
  3. COUNT(*) AS falls_count
  4. FROM upfall u INNER JOIN trip t
  5. ON u.id = t.stop
  6. INNER JOIN county c
  7. ON u.county_id = c.id
  8. WHERE t.name = 'Munising'
  9. GROUP BY CUBE(t.name, c.name);
  1. TOUR_NAME COUNTY_NAME FALLS_COUNT
  2. ---------- ----------- ----------------------
  3. 6
  4. Alger 6
  5. Munising 6
  6. Munising Alger 6

GROUP BY で有用な関数

GROUPING( column )

  • CUBE, ROLLUPの結果が NULL の場合、1を返す、そうでない場合、0を返す