01 / 04
集める・数える
INPUT · スライド
2つの基準でまとめる
02 / 04
カンマで並べるだけ
GROUP BY のうしろに列をカンマで並べると、その組み合わせが同じ行がひとまとまりになる。
3店 × 2日なので、最大6グループ。SELECT にも両方の列を並べておくと、どのマスの値かが分かるよ。
SELECT stall, day, SUM(sold) FROM sales GROUP BY stall, day;実行結果
こもれび堂 | 2026-05-02 | 12 こもれび堂 | 2026-05-03 | 6 つむぎ雑貨 | 2026-05-02 | 4 つむぎ雑貨 | 2026-05-03 | 20 ゆらり工房 | 2026-05-02 | 2 ゆらり工房 | 2026-05-03 | 4
03 / 04
グループは細かくなる
基準を増やすほど1グループに入る行は少なくなり、返る行は増える。COUNT(*) を見ると、1行しか入っていないグループもあるね。
細かくしすぎると集計の意味が薄くなる。なにを比べたいかで基準の数を決めよう。
SELECT stall, day, COUNT(*) FROM sales GROUP BY stall, day;実行結果
こもれび堂 | 2026-05-02 | 2 こもれび堂 | 2026-05-03 | 1 つむぎ雑貨 | 2026-05-02 | 1 つむぎ雑貨 | 2026-05-03 | 2 ゆらり工房 | 2026-05-02 | 1 ゆらり工房 | 2026-05-03 | 1
04 / 04
書いた順が並びに出る
GROUP BY day, stall と順番を入れかえると、グループの中身は同じでも並びが変わる。日でまとまってから店が並ぶ形だよ。
読ませたい相手に合わせて順番を選ぼう。日報なら日が先、店の報告なら店が先だね。ここから書いてみよう。
SELECT day, stall, SUM(price * sold) FROM sales GROUP BY day, stall;実行結果
2026-05-02 | こもれび堂 | 6600 2026-05-02 | つむぎ雑貨 | 7200 2026-05-02 | ゆらり工房 | 4800 2026-05-03 | こもれび堂 | 4200 2026-05-03 | つむぎ雑貨 | 13800 2026-05-03 | ゆらり工房 | 4800