我有以下查询:
SELECT DISTINCT
status,
CASE
WHEN status = 0 THEN 'bla'
WHEN status = 2 THEN 'bla1'
END AS "description" ,
COUNT(*) AS total
FROM
TRANSACTIONS
WHERE
status != 1
GROUP BY
status
显示:
描述 | TOTAL | 0 | bla | 29日 | 2
---|---|---|
bla1 | 70 | |
3 | (null) | 12 |
(null) | 85 |
为什么要在group by
子句中添加另一列的非理性恐惧 ?这是最简单、最有效的方法。
SELECT t.status, c.description, COUNT (*) AS total
FROM transactions t JOIN status_codes c ON c.status = t.status
WHERE t.status != 1
GROUP BY t.status, c.description
如果你改变做法,你期望得到什么好处?
顺便说一句,如果你有group by
条款,你不需要distinct
。