簡體   English   中英

如何將不同的記錄合並為一個?

[英]How do I combine separate records into one?

我有一個表product和兩列idpricing_category ,我有一個查詢

SELECT DISTINCT ppp.`id` AS productid ,ppp.`pricing_category` AS type1
FROM `product` ppp
WHERE ppp.`finish_product_id`=1

結果是:

在此處輸入圖片說明

我希望該type在一個 ID 的單行中顯示為type1,type2,type3 我該怎么做?

您可以使用條件聚合來做到這一點:

SELECT t.productID,
       MAX(CASE WHEN t.type1 = 1 THEN 1 ELSE 0 END) as type1_ind,
       MAX(CASE WHEN t.type1 = 2 THEN 1 ELSE 0 END) as type2_ind,
       MAX(CASE WHEN t.type1 = 3 THEN 1 ELSE 0 END) as type3_ind
FROM YourTable t
GROUP BY t.productID

這對於所有產品 ID 都是動態的,而不僅僅是特定的產品 ID。 要選擇一個特定的,請將group by替換為您的WHERE子句。

如果他有(1)或沒有(0),這將返回每種類型的每個產品的指示。

例如對於數據:

PRODUCTID | Type1
   1          1
   1          2
   1          3
   2          3

這將返回:

PRODUCTID | TYPE1_IND | TYPE2_IND | TYPE3_IND
    1           1            1           1
    2           0            0           1

或者將它們全部作為一列使用GROUP_CONCAT()

SELECT t.productID,
       GROUP_CONCAT(concat('TYPE',t.type1))
FROM YourTable t
GROUP BY t.productID

您可以使用GROUP_CONCAT

select id productid,
       group_concat(concat('type', pricing_category) order by pricing_category) type
from product
where finish_product_id = 1
group by id;

SQLFiddle

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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