私は製品 ID を含むデータベースを持っており、5 人の顧客からの評価が与えられています。データベースの各行は 1 件のレビューを表します。非常にシンプルで、製品 ID と、レビューが 1、2、3、4、または 5 つ星の列に 1 があります。次のようにレイアウトされています。
Product ID | 1 | 2 | 3 | 4 | 5 |
1294518 | 1 | 0 | 0 | 0 | 0 |
9226582 | 0 | 0 | 1 | 0 | 0 |
3946583 | 0 | 0 | 0 | 1 | 0 |
7392588 | 1 | 0 | 0 | 0 | 0 |
1196585 | 0 | 0 | 0 | 0 | 1 |
1196585 | 0 | 0 | 0 | 0 | 1 |
製品 ID が重複している行をマージしたいと考えています。上記の例のように、製品 ID 1196585 には 2 つの行があります。この場合、この製品が 5 つ星のレビューを 2 つ受け取ったことを示すために、これを 5 列の下に 2 を付けて 1 つの行に結合したいと思います。
明確にするために、重複する行が結合されるようにテーブルを修正したいと思います。これにより、その後重複する製品 ID がなくなり、各列 1、2、3、4、および 5 の下にそれぞれの回数が残ります。たとえば、これらの製品 ID のうち 1 つ、2 つ、3 つ、4 つ、および 5 つ星のレビューを受け取りました。
これが SQL でどのように達成されるかを理解するのを手伝ってくれませんか?