我有一張這樣的產品零件表:
部分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 而一點都不心虛,把能力扎扎實實...