簡體   English   中英

MySQL選擇將結果拆分到不同的列

[英]MySQL Select Where spliting results into different column

我正在嘗試將結果分成不同的列,我已經搜索了幾天,但找不到我想要做的正確術語。 我可能使用了錯誤的關鍵詞。

我有一張這樣的桌子:

Timestamp    System    Value
1             1          13
1             2          12
1             3          5
2             1          37
2             2          12
2             3          55
3             1          12
3             2          45
3             3          45

我想得到這樣的結果:

Timestamp, System1val, System2val, System3val
1             13            12        5
2             37            12        55
3             12            45        45

我很確定有可能做到這一點。 我已經通過使用關閉:

SELECT  
    FROM_UNIXTIME(timestamp) as time,  
    CASE System
        WHEN '1' THEN System
        END AS System1val,
    CASE System
        WHEN '2' THEN pyr.measure_conv
        END AS System2val,
    CASE System
        WHEN '3' THEN pyr.measure_conv
        END AS System3val
FROM 

實際上,這將返回不同的字段並填充NULL值。 最終目標是按時間戳分組並具有所有三個值

這是一個“跨表”挑戰。 您需要以這種方式構造東西...

SELECT
Timestamp,
SUM(CASE WHEN System=X THEN Value ELSE 0 END) AS X,
SUM(CASE WHEN System=Y THEN Value ELSE 0 END) AS Y
FROM System
GROUP BY Timestamp

嘗試

SELECT  
    timestamp time,  
    SUM(CASE WHEN system = 1 THEN value ELSE NULL END) System1val,
    SUM(CASE WHEN system = 2 THEN value ELSE NULL END) System2val,
    SUM(CASE WHEN system = 3 THEN value ELSE NULL END) System3val
FROM Table1
 GROUP BY timestamp

輸出:

| TIME | SYSTEM1VAL | SYSTEM2VAL | SYSTEM3VAL |
-----------------------------------------------
|    1 |         13 |         12 |          5 |
|    2 |         37 |         12 |         55 |
|    3 |         12 |         45 |         45 |

這是SQLFiddle演示

暫無
暫無

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

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