对两个单独的列使用distinct和case

时间:2013-03-26 06:19:07

标签: sql count distinct case

我使用以下代码按年计算案例:

COUNT(CASE WHEN Year(FilingDate)=2008 THEN 1 ELSE NULL END) AS '2008'

我希望只在另一列不同时计算这些情况。另一列被称为'FilingDate'我想象的会是这样的:

COUNT(CASE distinct (DocketNumber) WHEN Year(FilingDate)=2008 THEN 1 ELSE NULL END) AS '2008',

样本记录:

DocketNumber FilingDate

123 2008

123 2008

123 2008

111 2009

112 2009

我只想接受= 1 任何想法?

由于

2 个答案:

答案 0 :(得分:1)

使用SUBQUERYGROUP BY子句

的选项
SELECT COUNT(CASE WHEN YearFilingDate = 2008 THEN 1 END) AS '2008'
FROM
 (      
  SELECT Year(FilingDate) AS YearFilingDate, DocketNumber
  FROM dbo.test55
  GROUP BY Year(FilingDate), DocketNumber
  ) x

SQLFiddle上的演示

答案 1 :(得分:0)

SELECT COUNT(CASE WHEN Year(FilingDate)=2008 THEN 1 ELSE NULL END) AS '2008'
GROUP BY DocketNumber

可能是。