的我有這樣計數獨特的值之內的時間範圍
Time | user_id
12100 | 23
12100 | 23
12100 | 22
12100 | 19
12100 | 20
...
12160 | 273
12160 | 223
12160 | 1223
...
時間的表是秒。我正在尋找一種方式來獲得獨特的user_id計數一分鐘內有結果表看起來像這樣
Minute | Count
1 | 36
2 | 100
...
假設從12100開始,所以分鐘1爲12100 ~ 12159
,分2爲12160 to 12219
。
非常感謝幫助。
更新:(這是我曾經嘗試過,但似乎包括計數重複)
SELECT ROW_NUMBER() OVER (ORDER BY [Time]) AS [Row]
, [Time]
, COUNT(DISTINCT([user_id])) as [Count]
INTO [table].[dbo].[temp]
FROM [db].[dbo].[table]
GROUP BY [Time]
SELECT t.[Minute], SUM(t.[Count]) AS [Count]
FROM
(SELECT (ROW_NUMBER() OVER (ORDER BY [Row]) + 59)/60 AS [Minute]
, SUM([Count]) AS [Count]
FROM [db].[dbo].[temp]
GROUP BY [Row]) AS t
GROUP BY t.[Minute]
ORDER BY t.[Minute]
DROP TABLE [db].[dbo].[temp]
你嘗試過什麼嗎? – 2013-02-17 00:46:41
是的,我做到了。我每秒做一次,並將它們組合在一起以獲得一分鐘的總計數,但我忘記了可能存在user_id重疊。 – Firyn 2013-02-17 00:48:20
發佈查詢你試過了什麼。 – 2013-02-17 00:49:37