Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 输出表中id的出现次数_Sql_Sql Server - Fatal编程技术网

Sql 输出表中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

我想计算一周/一个月内发生的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    
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