[英]Mysql : Where in inner select vs where in outer select - different results
[英]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.