Sql 输出表中id的出现次数
我想计算一周/一个月内发生的ID数量,类似这样Sql 输出表中id的出现次数,sql,sql-server,Sql,Sql Server,我想计算一周/一个月内发生的ID数量,类似这样 PK Date ID === =========== === 1 07/04/2017 22 2 07/05/2017 22 3 07/07/2017 03 4 07/08/2017 04 5 07/09/2017 22 6 07/09/2017 22 7 07/10/2017 05 8 07/11/2017 03
PK Date ID
=== =========== ===
1 07/04/2017 22
2 07/05/2017 22
3 07/07/2017 03
4 07/08/2017 04
5 07/09/2017 22
6 07/09/2017 22
7 07/10/2017 05
8 07/11/2017 03
9 07/11/2017 03
10 07/11/2017 03
我试图在一个perl文件中实现这一点,在一个csv文件中输出/打印它,我不知道我将执行什么查询。似乎是一个简单的count distinct and group by的例子:
ID Count
22 3 --> count as 1 only in the same date occurred twice one 07/09/2017
03 2 --> same as above, increment only one regardless how many times it occurred in a same date
04 1
05 1
选择Id,COUNT(不同的[Date])作为[COUNT]
从表名
其中[日期]>=@StartDate
和[日期]您可以将计数
与不同
一起使用,例如:
SELECT Id, COUNT(DISTINCT [Date]) As [Count]
FROM TableName
WHERE [Date] >= @StartDate
AND [Date] <= @EndDate
GROUP BY Id
ORDER BY [Count] DESC
您可以阅读更多关于如何从中的日期获取月份的信息(它也适用于年)
您的查询将是:
SELECT ID, COUNT(DISTINCT Date)
FROM table
GROUP BY ID;
希望这对你有帮助 你试过什么?你有什么问题?请出示您的密码。如果您没有任何代码,那么堆栈溢出可能不是您提出问题的最佳位置。提示:分组依据
。我已尝试从表中选择id、日期、计数(id)计数,其中日期介于“07-04-2017”和“07-11-2017”之间,按id分组,按id排序,这将仅显示每个id的总出现次数,例如,今天发生了10次
select DATEPART(mm,Date) AS month, COUNT(ID) AS count from table group by month