我必須按小時排序某人從特定國家/地區撥打的次數。國家名單按月增加,例如我們可以添加巴西。我正在使用SQL Server。SQL Server - 顯示列表中的熱門條目
數據看起來像這樣
2012-04-02 08:00:59 United States
2012-04-02 08:12:02 United States
2012-04-02 08:13:42 Canada
2012-04-02 08:13:56 United States
2012-04-02 08:14:07 Mexico
2012-04-02 08:18:09 Canada
2012-04-02 08:19:50 United States
2012-04-02 08:34:34 Mexico
etc.
我怎麼想列出的數據是由前2個國家的小時。
我想它顯示,如:
Date Country Calls
2012-04-02 08:00:00 United States 24
2012-04-02 08:00:00 Canada 19
--hidden--
2012-04-02 08:00:00 Mexico 12
,我試圖(不工作)的代碼:
Declare @StartDate datetime, @EndDate datetime
set @StartDate = '20120401 00:00:00'
set @EndDate = '20120430 23:59:59'
SELECT DATEADD(HOUR, DATEPART(HOUR, [date]), DATEDIFF(DAY, 0, [date])) as [date],
(SELECT COUNT([country]) FROM [mytable] WHERE [date] between @StartDate and @EndDate and [country] = 'United States') as [United_States]
,(SELECT COUNT([country]) FROM [mytable] WHERE [date] between @StartDate and @EndDate and [country] = 'Canada') as [Canada]
,(SELECT COUNT([country]) FROM [mytable] WHERE [date] between @StartDate and @EndDate and [country] = 'Mexico') as [Canada]
FROM [mytable]
WHERE [date] between @StartDate and @EndDate
GROUP BY DATEADD(HOUR, DATEPART(HOUR, [date]), DATEDIFF(DAY, 0, [date]))
ORDER BY [date]
謝謝。
你如何獲得電話的數量? – Matthew 2012-04-20 22:15:55
電話的數量只是爲了舉例說明我想如何排序,我還沒有一個公式可以找出確切數量 – Brad 2012-04-20 22:21:20
您需要在最長時間內來自每個國家的電話數量?每一天?每個小時?對於每個月? – daniloquio 2012-04-20 22:22:46