簡單談談MySQL資料透視表

2022-09-25 05:42:06 字數 1264 閱讀 8577

我有一張這樣的產品零件表:

部分part_id part_type product_id

--------------------------------------

1 a 1

2 b 1

3 a 2

4 程式設計客棧 b 2

5 a 3

6 b 3

我想要乙個返回如下**的查詢:

product_id part_a_id part_b_id

----------------------------------------

1 1 2

2 3 4

3 5 6

在實際實施中,將有數百萬個產品部件

最佳答案

不幸的是,mysql沒有pivot功能,noznjhknth但您可以使用聚合函式和case語句對noznjhknth其進行建模.對於動態版本,您需要使用預準備語句:

set @sql = null;

select

group_concat(distinct

concat(

'max(case when part_type = ''',part_type,''' then part_id end) as part_','_id'

) ) into @sql

from

parts;

set @sql = concat('select product_id,',@sql,'

from parts

group by product_id');

prepare stmt from @sql;

execute stmt;

deallocate prepare stmt;

如果您只有幾列,那麼您可以使用靜態版本:

select product_id,max(case when part_type ='a' then pawww.cppcns.comrt_id end) as part_a_id,max(case when part_type ='b' thwww.cppcns.comen part_id end) as part_b_id

from parts

group by product_id

本文標題: 簡單談談mysql資料透視表

本文位址:

資料透視表mysql 簡單談談MySQL資料透視表

我有一張這樣的產品零件表 部分part id part type product id 1 a 1 2 b 1 3 a 2 4 b 2 5 a 3 6 b 3 我想要乙個返回如下 的查詢 product id part a id part b id 1 1 2 2 3 4 3 5 6 在實際實施中,...

資料透視表

源明 資料透視表 的用法,他們總問俺 錦繡 又是那個怪怪的 資料透視表 源明 什麼怪怪的,上次不是給你說了,它的用途可大了,尤其是統計一些資料的時候,不用函式就能實現,有人從這些分析中能賺著大錢呢 錦繡 可是有點兒複雜,你知道唄,俺就奇怪你們學理科的人,寫出的東西又枯燥又難懂,俺就學不會,源明 所以...

資料透視表

寫在前面 最近給自己立下乙個任務 掌握excel中的資料透視表 vlookup,如果還有餘力可以再掌握其vba基礎。而因為已經具備程式設計基礎,所以我認為學習vba應該也不是什麼難事,前兩種的話,希望可以達到在簡歷上寫 熟練使用excel中的資料透視表 vlookup 而一點都不心虛,把能力扎扎實實...