Sql Server group by,count查询

0 sql sql-server

我有以下查询

select COUNT(mc_owner) as nbr , mc_owner
from [dbo].[full] 
where (date_reception > '01-01-2015')
group by (mc_owner)
order by nbr desc
Run Code Online (Sandbox Code Playgroud)

这告诉我

  • 20000元素1
  • 10000元素2
  • 10000元素3
  • 10000元素4

我需要只有两个结果element1和其他在元素上分组的东西

  • element1 20000
  • 其他人30000

谢谢你的帮忙

das*_*ght 5

你用一个CASE表达式来做,像这样:

SELECT
    COUNT(*) as nbr,
    CASE mc_owner WHEN 'Element1' THEN 'Element1' ELSE `Others` END as Owner
FROM [dbo].[full] 
WHERE (date_reception > '01-01-2015')
GROUP BY CASE mc_owner WHEN 'Element1' THEN 'Element1' ELSE `Others` END
ORDER BY COUNT(*) DESC
Run Code Online (Sandbox Code Playgroud)

我们的想法是提供一个表达式,该表达式可以计算出您需要的两个值之一 - 即,'Element1'或者Others,取决于mc_owner字段的值.