【发布时间】:2021-11-22 02:39:47
【问题描述】:
我有一个有 8 列的表。 (可能的项目数超过 1500。为了更好地阅读本示例,我将它们命名为“项目”)。
| id | project_id | product1 | amount1 | product2 | amount2 | product3 | amount3 |
|---|---|---|---|---|---|---|---|
| 1 | 2 | item5 | 22,5 | item2 | 8,5 | item1 | 4,5 |
| 2 | 2 | item4 | 5,5 | ||||
| 3 | 1 | item1100 | 55,1 | item1 | 8,5 | ||
| 4 | 3 | item8 | 41,2 | ||||
| 5 | 2 | item2 | 22,0 | item4 | 8,5 | item2 | 4,5 |
如何对特定项目 ID 的现有产品的所有值求和?
示例:project_id 2
| project_id | product1 | product1_sum | product2 | product2_sum | product3 | product3_sum | product4 | product4_sum |
|---|---|---|---|---|---|---|---|---|
| 2 | item1 | 4,5 | item2 | 35 | item4 | 14 | item5 | 22,5 |
如果我只有一个产品列,这很容易,但我不知道如何检查所有 3 个。
SELECT
product1, SUM(amount1) AS prod_sum
FROM doe_table
WHERE project_id = 2
GROUP BY product1
【问题讨论】:
-
您的数据模型似乎有缺陷,您的列应该是行 - 那么您的查询就是一个微不足道的总和。
-
每行有一个产品。