Table
--------
Date CreatedOn
varchar(25) IP在此表中,我希望按日选择唯一IP地址的数目。
June 1, 2013 25
June 2, 2013 35
June 3, 2013 0注意,第三项是在最初的问题之后添加的,以处理没有项目的天数。这些数据将被转换成图表。
这方面的Server 2008R2 Sql是什么?
格雷格
发布于 2013-09-18 17:21:25
SELECT Date, COUNT(*)
FROM TableName
GROUP BY Date
ORDER BY date如果你想有唯一的计数,你需要有DISTINCT,例如。COUNT(DISTINCT IP)。
后续问题:是否有一个没有视图的日期?你打算拿它做什么?
由于要根据注释显示两个日期范围之间的所有日期,所以需要有一个日历表或在日期范围之间生成所有日期的东西。
-- let's say
-- start date = June 1, 2013
-- end date = June 5, 2013
WITH DateTimeSequence
AS
(
SELECT CAST('20130601' as datetime) AS [datetime] -- Start Date
UNION ALL
SELECT DATEADD(d, 1, [datetime])
FROM DateTimeSequence
WHERE DATEADD(d, 1, [datetime]) <= CAST('20130605' as datetime) -- End Date
)
SELECT a.[datetime],
COUNT(DISTINCT b.[ipaddress]) uniqueIP_Count
FROM DateTimeSequence a
LEFT JOIN TableName b
ON a.[datetime] = b.[date]
GROUP BY a.[datetime]发布于 2013-09-18 17:21:34
SELECT CreatedOn,
COUNT(DISTINCT IP)
FROM Table
GROUP BY CreatedOnhttps://stackoverflow.com/questions/18878474
复制相似问题