Возвращает все строки, отсортированные по CountOfRecords DESC. Мне бы хотелось, чтобы здесь было всего семь строк, показывающих самое высокое значение за указанный день. Поэтому каждый день недели должен происходить один раз и только один раз. Это возможно без большой боли?
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 за указание на простой способ получить единственную часть даты из даты и времени.