【问题标题】:Using distinct and case for two separate columns对两个单独的列使用 distinct 和 case
【发布时间】:2013-03-26 06:19:06
【问题描述】:

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

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 有什么想法吗?

谢谢

【问题讨论】:

  • 能不能给样张记录

标签: sql count distinct case


【解决方案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上的演示

【讨论】:

    【解决方案2】:
    SELECT COUNT(CASE WHEN Year(FilingDate)=2008 THEN 1 ELSE NULL END) AS '2008'
    GROUP BY DocketNumber
    

    可能会。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多