はじめに
タイトルにもある通り、テーブルデータを複数のカラムを指定してグループ化したかったのだが、詰まってしまったのでメモとして記事に残します。
やりたいこと
以下の売り上げを管理するデータを持つテーブルがあるとする。
item | date |
---|---|
apple | 2020-06-06 |
apple | 2020-06-06 |
orange | 2020-06-06 |
orange | 2020-06-06 |
grape | 2020-06-06 |
orange | 2020-06-05 |
orange | 2020-06-05 |
grape | 2020-06-05 |
apple | 2020-06-05 |
grape | 2020-06-05 |
このデータを1日ごとの種類別の売り上げた個数を取得したい。
最終目標の取得データは以下
item | sum | date |
---|---|---|
apple | 2 | 2020-06-06 |
orange | 2 | 2020-06-06 |
grape | 1 | 2020-06-06 |
orange | 2 | 2020-06-05 |
grape | 2 | 2020-06-05 |
apple | 1 | 2020-06-05 |
やり方
やり方は超簡単である。
自分が長い時間悩んでいた事が馬鹿らしく思えるほどに。
select item, count(item) as sum, date
from sales
group by item, date
以上である。
余談
自分がなぜ時間がかかってしまったのか。
普通に__group by__で日付をグループ化までは良かったのだが、そこから__item__をグループ化するのに以下の様にしてしまった。
select item, count(item) as sum, date
from sales
group by item and date
そうすると、全てのデータがグループ化されて取得できてしまった。
次にサブクエリなどを用いて、データをこねくり回して取得してやろうとしていたが、実現できず。
結局上司の仏様に助けを求めたら、超簡単な返答が返ってきて笑ってしまいました。
浅はかな知識より、しっかりと勉強をして知識をつけないとなと実感した日でした。
本日は以上、ありがとうございました。