LoginSignup
1
0

More than 3 years have passed since last update.

【SQL】テーブルのデータを複数のカラム指定してグループ化する方法

Posted at

はじめに

タイトルにもある通り、テーブルデータを複数のカラムを指定してグループ化したかったのだが、詰まってしまったのでメモとして記事に残します。

やりたいこと

以下の売り上げを管理するデータを持つテーブルがあるとする。

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

そうすると、全てのデータがグループ化されて取得できてしまった。

次にサブクエリなどを用いて、データをこねくり回して取得してやろうとしていたが、実現できず。
結局上司の仏様に助けを求めたら、超簡単な返答が返ってきて笑ってしまいました。
浅はかな知識より、しっかりと勉強をして知識をつけないとなと実感した日でした。
本日は以上、ありがとうございました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0