2017-07-10 20 views
0

我們有一個數據庫頁面url和dateTime記錄的列表。SQL獲取用戶訪問最多的時間

是否有可能獲得用戶訪問最多的小時? 列時間顯示用戶最多訪問網址的時間。

預期的結果應該是這樣的:

page URL | # visitor per day |  Date  | Max visitor/hour| time 
----------+-------------------+--------------------+-----------------+-------------- 
www.url1 |  49   | 07/07/2017  |  23  | 12:00 - 13:00 
www.url2 |  88   | 07/07/2017  |  39  | 7:00 - 8:00 
+0

提供更多信息,您是否希望查詢每個日期的最大訪問量或所有日期的最受歡迎時間合併? – Tik

+0

@Tik謝謝你的迴應。我正在尋找兩個。在上表的第二欄中,應該顯示每天的最大訪問者數。而第四列將是當天特定1小時範圍內的最大訪問者。 (例如,從** 12:00 - 13:00,23 **訪問者可以在同一天訪問url1,如表7-7-17所示) –

+0

@Tik列時間應該分成這些部分。 00:00 - 00:59,1:00 - 1:59,2:00 - 2:59等等。這些列上顯示的值應該是用戶訪問時間最長的時間。 –

回答

0

子查詢得到每每個URL和日最大小時。 然後將其加入到主表中,以獲取所需的記錄。 如果您需要最大時間而不考慮日期,則只需從子查詢和聯接條件中刪除日期列。

select * 
from maintable 
join 
(select pageURL, Date, max(MaxVisitorPerHour) as maxhour 
    from table 
    group by pageURL, Date) subq 
on 
(maintable.pageURL=subq.pageURL AND maintable.Date=subq.Date and  
maintable.maxVisitorPerHour=subq.maxhour)