簡體   English   中英

SQL查詢按周獲取總計

[英]SQL Query to get Totals By Week

我需要提交報告以獲取神經科醫生的一些醫療數據。 以下查詢按月匯總總計和平均值。 如何將其更改為按周拉取總計和平均值?

SELECT
  [Month] = DATENAME(MONTH, DATEADD(MONTH, MONTH(HeadacheDate), -1)),
  [Total] = COUNT(CASE
    WHEN Severity > 0 THEN 1
  END),
  [Light] = COUNT(CASE
    WHEN Severity > 0 AND
      Severity < 4 THEN 1
  END),
  [Moderate] = COUNT(CASE
    WHEN Severity > 3 AND
      Severity < 7 THEN 1
  END),
  [Severe] = COUNT(CASE
    WHEN Severity > 6 THEN 1
  END),
  [DHE or ER] = COUNT(CASE
    WHEN Medication LIKE '%dhe%' THEN 1
  END)
FROM HeadacheData
WHERE YEAR(HeadacheDate) = 2016
GROUP BY MONTH(HeadacheDate);

只需在DATENAME功能中使用WEEK而不是MONTH ,並按其分組。

另外一種更易讀的查詢格式就像......

SELECT
   [Week]      = DATENAME(WEEK, DATEADD(MONTH, MONTH(HeadacheDate), -1))
  ,[Total]     = COUNT(CASE WHEN Severity > 0 THEN 1 END)
  ,[Light]     = COUNT(CASE WHEN Severity > 0 AND Severity < 4 THEN 1 END)
  ,[Moderate]  = COUNT(CASE WHEN Severity > 3 AND Severity < 7 THEN 1 END)
  ,[Severe]    = COUNT(CASE WHEN Severity > 6 THEN 1 END)
  ,[DHE or ER] = COUNT(CASE WHEN Medication LIKE '%dhe%' THEN 1 END)
FROM HeadacheData
WHERE YEAR(HeadacheDate) = 2016
GROUP BY DATENAME(WEEK, DATEADD(MONTH, MONTH(HeadacheDate), -1));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM