作者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://webptt.com/cn.aspx?n=bbs/Database/M.1513655899.A.F59.html
1F:推 criky: 推一个 12/19 13:50
2F:推 DRLai: 原来可以这样写,感谢 m(_ _)m 12/19 21:31