SQL 计算时间段内的出现次数
SQL count ocurrences within time periods
我最近开始在工作(医院)的一个项目中使用 Access 数据库,并从该站点获得了很多有用的提示。但是,我现在有一个问题,我不知道如何解决。
我有一个 table 包含许多患者的治疗日期(以及其他数据)。我的任务是统计每周的治疗次数(也可能 month/quarter/year)。治疗日期位于 table 'Data' 中的 'TreatDate' 列。
我使用 DatePart
将年份和周数分隔为:
SELECT
DatePart('yyyy',[TreatStart]) AS Year, DatePart('ww',[TreatStart]) AS Week
FROM Data
ORDER BY DatePart('yyyy',[TreatStart]),DatePart('ww',[TreatStart]);
这给了我:
Year Week
2006 16
2006 16
2006 16
2006 17
2006 17
2006 18
2006 19
2006 19
2006 19
... ...
我如何计算每周出现的次数以获得类似的结果:
Year Week N
2006 16 3
2006 17 2
2006 18 1
2006 19 3
... ... ...
此致,
马蒂亚斯
只需将 group by
添加到您要计数的相同值上,然后添加 count
聚合函数即可获得该给定组的约会总数。
SELECT DatePart('yyyy',[TreatStart]) AS Year, DatePart('ww',[TreatStart]) AS Week , COUNT(*) As N
FROM Data
GROUP BY DatePart('yyyy',[TreatStart]),DatePart('ww',[TreatStart])
ORDER BY DatePart('yyyy',[TreatStart]),DatePart('ww',[TreatStart]);
使用GROUP BY
和COUNT
:
SELECT DatePart('yyyy',[TreatStart]) AS Year,
DatePart('ww',[TreatStart]) AS Week,
COUNT(*) as N
FROM Data
GROUP BY DatePart('yyyy',[TreatStart]),DatePart('ww',[TreatStart])
ORDER BY DatePart('yyyy',[TreatStart]),DatePart('ww',[TreatStart]);
输出将是:
Year Week N
2006 16 3
2006 17 2
2006 18 1
2006 19 3
我最近开始在工作(医院)的一个项目中使用 Access 数据库,并从该站点获得了很多有用的提示。但是,我现在有一个问题,我不知道如何解决。
我有一个 table 包含许多患者的治疗日期(以及其他数据)。我的任务是统计每周的治疗次数(也可能 month/quarter/year)。治疗日期位于 table 'Data' 中的 'TreatDate' 列。
我使用 DatePart
将年份和周数分隔为:
SELECT
DatePart('yyyy',[TreatStart]) AS Year, DatePart('ww',[TreatStart]) AS Week
FROM Data
ORDER BY DatePart('yyyy',[TreatStart]),DatePart('ww',[TreatStart]);
这给了我:
Year Week
2006 16
2006 16
2006 16
2006 17
2006 17
2006 18
2006 19
2006 19
2006 19
... ...
我如何计算每周出现的次数以获得类似的结果:
Year Week N
2006 16 3
2006 17 2
2006 18 1
2006 19 3
... ... ...
此致, 马蒂亚斯
只需将 group by
添加到您要计数的相同值上,然后添加 count
聚合函数即可获得该给定组的约会总数。
SELECT DatePart('yyyy',[TreatStart]) AS Year, DatePart('ww',[TreatStart]) AS Week , COUNT(*) As N
FROM Data
GROUP BY DatePart('yyyy',[TreatStart]),DatePart('ww',[TreatStart])
ORDER BY DatePart('yyyy',[TreatStart]),DatePart('ww',[TreatStart]);
使用GROUP BY
和COUNT
:
SELECT DatePart('yyyy',[TreatStart]) AS Year,
DatePart('ww',[TreatStart]) AS Week,
COUNT(*) as N
FROM Data
GROUP BY DatePart('yyyy',[TreatStart]),DatePart('ww',[TreatStart])
ORDER BY DatePart('yyyy',[TreatStart]),DatePart('ww',[TreatStart]);
输出将是:
Year Week N
2006 16 3
2006 17 2
2006 18 1
2006 19 3