它返回按CountOfRecords DESC排序的所有行。我想在這裏只有七排,顯示特定日期的最高價值。所以一週中的每一天都應該只發生一次。這可能沒有很多痛苦嗎?SQL - 選擇一週中的每一天的最高記錄數
SELECT
Count(*) As CountOfRecords,
CAST(FLOOR(CAST([visit].[datetimeentered] AS float)) AS smalldatetime) AS DateEntered,
DatePart(dw, visit.datetimeentered) As DayOfTheWeek
FROM visit
INNER JOIN useragent ON useragent.useragentid = visit.useragentid
WHERE useragent.isbot = 0
GROUP BY CAST(FLOOR(CAST([visit].[datetimeentered] AS float)) AS smalldatetime),
DatePart(dw, visit.datetimeentered)
ORDER BY CountOfRecords DESC
EDIT1:
我覺得兩個答案都在同樣的事情得到。我已經接受了首先發布的那個。我也要提到它的工作原理,而另一個則沒有。我收到以下錯誤,當我運行marc_s的查詢:
Msg 207, Level 16, State 1, Line 29
Invalid column name 'RowNum'.
Msg 207, Level 16, State 1, Line 25
Invalid column name 'CountOfRecords'.
Msg 207, Level 16, State 1, Line 26
Invalid column name 'DateEntered'.
Msg 207, Level 16, State 1, Line 27
Invalid column name 'DayOfTheWeek'.
特別感謝marc_s您指出一個簡單的方法來獲得僅從日期時間的日期部分。
你已經將數據分組在看起來是你問題的正確方法 - 是否有一個原因,你不能添加MAX(fieldname),其中fieldname是你想要的最高可用值的字段 - 到你的SELECT ? – 2011-04-28 20:11:26
什麼數據庫產品和版本?它聞起來像SQL Server。如果是這樣,什麼版本? – Thomas 2011-04-28 20:21:30
我沒有提到這是SQL Server 2008.我試過了你的建議,但它沒有奏效。 – HK1 2011-04-28 20:21:46