推しミネラルウォーターはありますか?

いつもこちらではお世話になっております。
SQLでのスクリプトで悩んでおります。

---------------------------------------------------
元データ
ID : date : count
a : 20201214 : 1
a : 20211215 : 2
a : 20211217 : 1
a : 20211218 : 3
a : 20211219 : 3
b : 20180101 : 2
b : 20180102 : 2
c : 20201111 : 1
----------------------------------------------------

上記のようなデータがあったとします(データ自体は数百万あります)。
基本的に1IDで1行にしたいです。
今回は「date」が重要になっており、これを古いものから順序をつけたいです。
(同じ日付はありません)
countは、同じID分は合計したいです。
--------------------------------------------------
理想的な形(スペースを入れると勝手に省略されるので、コロンで区切ってます)
ID : date1 : date2 : date3 : date4 ・・・:  count
a : 20211124 : 20211215 : 20211217 : 20211218 : 10
b : 20180101 : 20181012 : null : null : 4
---------------------------------------------------


pivotを使う気もしますが、pivotは使ったことがなくよく分かっていません。
日付は極端に離れているもはなく、基本的にほぼほぼ連続しています。
(ときどき飛ばされている日があり、最終的にはその「飛ばされている日」を拾いたい)

お手数ですが、ご教授いただけますとさいわいです。

質問者からの補足コメント

  • コメントありがとうございます。
    dateに関しては最大60ですので、60設定にしようと思っています。
    (nullではなく、「no_date」等、特定の文字を入れてもOKです)

    No.1の回答に寄せられた補足コメントです。 補足日時:2021/12/14 15:38

A 回答 (1件)

「理想的な形」のdate上限が決まっているのですか?


決まっていないのであれば、カラム数が不定ではテーブル設計ができません。

ID:NAME:DATE
1 :a : 20201214
2 :a : 20211215
3 :a : 20211215
4: b : 20180101

とすればどのようにも扱えると思いますが(PKはID)。
まずは要件に応じたテーブル設計の検討が必要です。
この回答への補足あり
    • good
    • 2

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す