[英]Mysql split column into multiple columns
我有一張像這樣的桌子:
id | cat | price
----------------------
0 | 1 | 2
0 | 2 | 1
0 | 1 | 1
1 | 1 | 31
1 | 2 | 5
----------------------
我喜歡選擇它:
id | cat1_price | cat2_price
----------------------------------
0 | 3 | 1
1 | 31 | 5
----------------------------------
到目前為止我的查詢:
SELECT SUM(`price`) as cat1_price FROM price_table WHERE cat = 1 GROUP BY id
可以用來獲取所需的列之一。 我怎么都可以?
我也嘗試過類似的方法:
SELECT SUM(`price`) as cat1_price
(SELECT SUM(`price`) FROM price_table WHERE cat = 2) as cat2_price
FROM price_table WHERE cat = 1 GROUP BY id
工作太慢了。 實際表很大,並且有一些聯接。
我不是sql專家,所以我希望有一個我不知道的查詢:)
只需使用條件聚合:
SELECT id, SUM(case when cat = 1 then `price` else 0 end) as cat1_price,
SUM(case when cat = 2 then `price` else 0 end) as cat1_price
FROM price_table
GROUP BY id;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.