[英]Convert rows to columns in mysql?
我有一種情況顯示mysql的結果。 我需要在mysql中將行轉換為列。
這是我的例子:
generator |turbine |trafo |hour
========================================
1 |20 |13 |09:00:00
3 |21 |15 |10:00:00
4 |25 |17 |11:00:00
9 |29 |11 |12:00:00
我需要的結果:
hour |09:00:00 |10:00:000 |11:00:00 |12:00:00
==========================================================
trafo |13 |15 |17 |11
turbine |20 |21 |25 |29
generator |1 |3 |4 |9
或(如果可能):
09:00:00 |10:00:000 |11:00:00 |12:00:00
=============================================
13 |15 |17 |11
20 |21 |25 |29
1 |3 |4 |9
我可以通過mysql查詢顯示這些結果嗎?
信息:小時使用時間類型。
這是可能的,但是很痛苦:
select t,
sum(case when hour = '09:00:00' then val else 0 end) as hour_09,
sum(case when hour = '10:00:00' then val else 0 end) as hour_10,
sum(case when hour = '11:00:00' then val else 0 end) as hour_11
from (select 'generator' as which, generator as val, hour from t union all
select 'turbine', turbine, hour from t union all
select 'trafo', trafo, hour from t
) t
group by t
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.