[英]How to populate columns in mysql depending on a condition in data?
我在mysql表中有以下格式的數據
id order_id state time_stamp
1 1 created 1:15 6/2/2015
2 2 created 1:17 6/2/2015
3 1 ack 1:18 6/2/2015
4 1 shipped 1:20 6/2/2015
5 1 delivered 1:25 6/2/2015
6 2 ack 1:25 6/2/2015
7 2 shipped 1:26 6/2/2015
8 2 delivered 1:29 6/2/2015
我想查詢該數據庫以獲得以下格式的結果-
order_id created_ts ack_ts shipped_ts delivered_ts
1 1:15 6/2/2015 1:18 6/2/2015 1:20 6/2/2015 1:25 6/2/2015
2 1:17 6/2/2015 1:25 6/2/2015 1:26 6/2/2015 1:29 6/2/2015
是否可以將其編寫為選擇SQL查詢? 請幫助進行示例查詢。 提前致謝。
也許是這樣的:
SELECT
order_id,
MAX(CASE WHEN state='created' THEN time_stamp ELSE NULL END) AS created_ts,
MAX(CASE WHEN state='ack' THEN time_stamp ELSE NULL END) AS ack_ts,
MAX(CASE WHEN state='shipped' THEN time_stamp ELSE NULL END) AS shipped_ts,
MAX(CASE WHEN state='delivered' THEN time_stamp ELSE NULL END) AS delivered_ts
FROM
Table1
GROUP BY
order_id
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.