Sql 如何获取列中最常用的值

Sql 如何获取列中最常用的值,sql,sql-server,tsql,Sql,Sql Server,Tsql,我在SQL server中有这样一个表 UsageTime Website 10:45:08 yahoo.co.uk 10:24:06 msn.co.uk 09:45:08 lycos.co.uk 我需要像这样的东西 BusiestHour NoOfWebsitesVisited 10:00 2 我试过这个 SELECT TOP 3 UsageTime as BusiestHour, COUNT(Webs

我在SQL server中有这样一个表

UsageTime        Website

10:45:08       yahoo.co.uk

10:24:06       msn.co.uk

09:45:08       lycos.co.uk
我需要像这样的东西

BusiestHour   NoOfWebsitesVisited
10:00         2     
我试过这个

SELECT TOP 3  UsageTime as BusiestHour, COUNT(Website) FROM  NoOfWebsitesVisited
GROUP BY BusiestHour    
但这并不完全正确。它不检查整个小时,只检查一个特定的值

任何帮助都将不胜感激:谢谢

SELECT TOP 3   
       DATEPART(HOUR,UsageTime) as BusiestHour, 
       COUNT(Website) FROM  NoOfWebsitesVisited
GROUP BY DATEPART(HOUR,UsageTime)
ORDER BY NoOfWebsitesVisited DESC;
也许你想要这样的东西:

SELECT TOP 3 WITH TIES
       DATEPART(HOUR,UsageTime) as BusiestHour, 
       COUNT(Website) FROM  NoOfWebsitesVisited
GROUP BY DATEPART(HOUR,UsageTime)
ORDER BY NoOfWebsitesVisited DESC;
也许你想要这样的东西:

SELECT TOP 3 WITH TIES
       DATEPART(HOUR,UsageTime) as BusiestHour, 
       COUNT(Website) FROM  NoOfWebsitesVisited
GROUP BY DATEPART(HOUR,UsageTime)
ORDER BY NoOfWebsitesVisited DESC;
使用dateparth,UsageTime获取日期的小时部分-然后可以构建更有用的表达式使用dateparth,UsageTime获取日期的小时部分-然后可以构建更有用的表达式