簡體   English   中英

MySQL將列拆分為多列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM