タグ

2017年3月23日のブックマーク (2件)

  • 第3回 SQL流条件分岐(3) 表頭の複雑な集計 | gihyo.jp

    これも、リスト7のクエリを簡単に修正するだけで対応できます(リスト8⁠)⁠。 リスト8 表頭:年齢階級・性別、表側:部署(小計・合計あり) SELECT dept, COUNT(*), SUM(CASE WHEN age <= 30 THEN 1 ELSE 0 END) AS "若手(計)", SUM(CASE WHEN age <= 30 AND sex = '男' THEN 1 ELSE 0 END) AS "若手(男)", SUM(CASE WHEN age <= 30 AND sex = '女' THEN 1 ELSE 0 END) AS "若手(女)", SUM(CASE WHEN age >= 31 THEN 1 ELSE 0 END) AS "ベテラン(計)", SUM(CASE WHEN age >= 31 AND sex = '男' THEN 1 ELSE 0 END)

    第3回 SQL流条件分岐(3) 表頭の複雑な集計 | gihyo.jp
    mura24
    mura24 2017/03/23
  • MYSQL で IF(CASE)文が便利 ← Neo Inspiration

    これはめちゃくちゃ便利なので、メモメモ。 例えば tableA に 性別カラム (clmA) (1=男,2=女,3=その他)があって 男のレコードの数 女のレコードの数 その他のレコードの数 を1発のSQLで出すことができます。 SELECT count( CASE WHEN clmA=1 THEN 1 ELSE null END ) as “Men” count( CASE WHEN clmA=2 THEN 1 ELSE null END ) as “Women” count( CASE WHEN clmA=3 THEN 1 ELSE null END ) as “Others” FROM tableA ほかにも CASE WHEN 1>0 THEN “true” ELSE “false” みたいな書き方も可能だし、 もちろんネストも可能。 しかも意外と処理も早いので、 わりとヘビーなD

    mura24
    mura24 2017/03/23