如何转换以下内容:
+------+---------+------+
| Date | Product | Sold |
+------+---------+------+
| 1/1 | P1 | 100 |
| 1/1 | P2 | 250 |
| 1/1 | P3 | 50 |
| 2/1 | P1 | 170 |
| 2/1 | P2 | 0 |
| 2/1 | P3 | 70 |
+------+---------+------+
Run Code Online (Sandbox Code Playgroud)
进入这样的表:
+------+-----+-----+----+
| Date | P1 | P2 | P3 |
+------+-----+-----+----+
| 1/1 | 100 | 250 | 50 |
| 2/1 | 170 | 0 | 70 |
+------+-----+-----+----+
Run Code Online (Sandbox Code Playgroud)
用SQL?
我知道产品的数量(正好是3).
许多DBMS提供对"pivotots"或"交叉表报告"的特定支持,但如果您的DBMS没有,或者您更喜欢可以在各种DBMS上运行的解决方案,您可以编写:
SELECT Date,
MIN(CASE WHEN Product = 'P1' THEN Sold END) AS "P1",
MIN(CASE WHEN Product = 'P2' THEN Sold END) AS "P2",
MIN(CASE WHEN Product = 'P3' THEN Sold END) AS "P3"
FROM ___insert_table_name_here___
GROUP
BY Date
;
Run Code Online (Sandbox Code Playgroud)
编辑补充:现在,您已经提到,你使用MySQL,这并不会有特别的枢纽或交叉表支持,所以上面的查询是要走的路.
| 归档时间: |
|
| 查看次数: |
231 次 |
| 最近记录: |