簡體   English   中英

在mysql中將行轉換為列?

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

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