两组两列并依靠每一列

时间:2012-12-12 14:56:21

标签: tsql count group-by ssrs-2008

Name  | Fruit  |  Red  
John  | Apple  |  Yes  
John  | Apple  |  No  
John  | Pear   |  Yes  
Mike  | Mango  |  No

如何获得如下结果:

Name | Fruits total | Red fruits total  
John | 3            | 2

如何在另外两列的两次计数操作中使用第一列的值?可能吗? 如果可能有帮助,我需要查询ssrs报告。

1 个答案:

答案 0 :(得分:1)

您可以使用以下内容,如果您按名称进行过滤,则可以使用count(*),然后使用带CASE的聚合函数来确定红色的水果总数:< / p>

select name,
  count(*) TotalFruit,
  sum(case when red='Yes' then 1 else 0 end) TotalRed
from yourtable
where name = 'John'
group by name

请参阅SQL Fiddle with Demo

结果:

| NAME | TOTALFRUIT | TOTALRED |
--------------------------------
| John |          3 |        2 |