Как получить количество событий каждый день с SQL? - PullRequest
3 голосов
/ 17 февраля 2010

У меня есть таблица, которая выглядит так:

Timestamp          Event   User
================   =====   =====
1/1/2010 1:00 PM   100     John
1/1/2010 1:00 PM   103     Mark
1/2/2010 2:00 PM   100     John
1/2/2010 2:05 PM   100     Bill
1/2/2010 2:10 PM   103     Frank

Я хочу написать запрос, который показывает события для каждого дня и подсчет для этих событий. Что-то вроде:

Date       Event   EventCount
========   =====   ==========
1/1/2010   100     1
1/1/2010   103     1
1/2/2010   100     2
1/2/2010   103     1

База данных SQL Server Compact, поэтому она не поддерживает все функции полноценного SQL Server. Запрос, который я написал до сих пор:

SELECT DATEADD(dd, DATEDIFF(dd, 0, Timestamp), 0) as Date, Event, Count(Event) as EventCount
FROM Log
GROUP BY Timestamp, Event

Это почти работает, но EventCount всегда равен 1. Как я могу заставить SQL Server возвращать правильные значения? Все поля обязательны для заполнения.

1 Ответ

4 голосов
/ 17 февраля 2010

Измените свою группу на

GROUP BY DATEADD(dd, DATEDIFF(dd, 0, Timestamp), 0), Event 
...