MW211 EXIT

devlog
MySQL/合計集計の複数条件
2014年06月30日
前回までCOUNT関数系の複数条件を扱ったが、SUM関数系の場合はどうするか?

すばり、地道にCASE文でやってしまう方法となりそうだ。
┌──────────────────────────────────────┐
│SELECT SUM(列)                                  AS `全ての集計`,            │
│       SUM(CASE WHEN 列 > 0 THEN 列 ELSE 0 END) AS `正数の集計`,            │
│       SUM(CASE WHEN 列 = 0 THEN 列 ELSE 0 END) AS `ゼロの集計`,            │
│       SUM(CASE WHEN 列 < 0 THEN 列 ELSE 0 END) AS `負数の集計`             │
│    FROM 表;                                                                │
└──────────────────────────────────────┘
もちろん条件は他の列とかを絡めたりしていろいろと対応できる。
分類:MySQL