Sql 计数的数据库查询
我有一张桌子Sql 计数的数据库查询,sql,group-by,Sql,Group By,我有一张桌子 ID | NAME | DEPT 1 | A | D-1 2 | B | D-1 3 | C | D-2 4 | D | D-3 5 | E | D-1 6 | F | D-3 7 | G | D-4 现在我想得到这样的结果 DEPT | COUNT(DEPT) D-1 | 3
ID | NAME | DEPT
1 | A | D-1
2 | B | D-1
3 | C | D-2
4 | D | D-3
5 | E | D-1
6 | F | D-3
7 | G | D-4
现在我想得到这样的结果
DEPT | COUNT(DEPT)
D-1 | 3
OTHERS | 4
有人能帮我写这个查询吗?您需要使用CASE按D-1和其他人对数据进行分组:
请参见我猜您需要最大发生部门和计数,其他部门和剩余部门发生的总和 你可以像下面这样做-
Select dept, count(*) cnt
from Table_name
group by dept
having count(*) = ( select max(count(*)) from table_name group by dept)
union
select 'Other' dept, count(*) cnt
from table_name
where dept not in ( select dept
from table_name
group by dept
having count(*) = ( select max(count(*))
from table_name
group by dept
)
)
我希望这就是你要找的
SELECT
DEPT,
COUNT (DEPT)AS [COUNT(DEPT)]
FROM(SELECT
(CASE DEPT WHEN 'D-1' THEN 'D-1' ELSE 'OTHERS' END) AS DEPT FROM test1) AS tbl
GROUP BY DEPT
请尝试上面的sql查询。我们这里不为您编写代码。你尝试了什么?对于那些不支持/不支持的选民来说,SQL标签目前尤其令人讨厌:这是为谁设计的DBMS?Gr8。。。。它起作用了。谢谢
SELECT
DEPT,
COUNT (DEPT)AS [COUNT(DEPT)]
FROM(SELECT
(CASE DEPT WHEN 'D-1' THEN 'D-1' ELSE 'OTHERS' END) AS DEPT FROM test1) AS tbl
GROUP BY DEPT