理解如何添加一个列而不必在sql中按它分组



我有以下查询:

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

显示:

状态tbody> <<tr>24
描述TOTAL
0bla29日
bla170
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

相关内容

最新更新