作者cutekid (可愛小孩子)
看板Database
標題Re: [SQL ] SELECT * FROM x GROUP BY y 語法
時間Tue Dec 19 11:58:17 2017
select ID,sum(unit * quantity) as count,
case min(
case status
when 'Fail' then 1
when 'Pending' then 2
when 'OK' then 3
end
)
when 1 then 'Fail'
when 2 then 'Pending'
when 3 then 'OK'
end as status
from table
group by ID
※ 引述《DRLai (蘇打)》之銘言:
: 資料庫名稱:MariaDB
: 資料庫版本:10
: 內容/問題描述:
: 資料大致如下
: ID unit quantity status
: --------------------------------------
: A 10 10 OK
: A 10 20 Pending
: A 20 10 OK
: B 10 10 OK
: B 10 10 Fail
: C 10 10 OK
: C 10 10 OK
: C 10 10 OK
: 想要做的是用 GROUP BY ID,將同 ID 的彙整
: 同時進行數量加總
: 前述部分語法沒問題,主要是 Status 欄位
: 目前的語法
: SELECT ID, SUM(unit*quantity) as count, status FROM table GROUP BY ID
: 發現 Status 欄位顯示是先搶先贏
: 而我想要呈現的方式是 Fail > Pending > OK
: 即 相同 ID 中有一個status 為 Fail 則顯示 Fail
: 要如何撰寫呢?
: 感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.232.34.27
※ 文章網址: https://www.ptt.cc/bbs/Database/M.1513655899.A.F59.html
推 criky: 推一個 12/19 13:50
推 DRLai: 原來可以這樣寫,感謝 m(_ _)m 12/19 21:31