Как я подсчитываю вхождения по дням в SQL? - PullRequest
9 голосов
/ 24 января 2010

Вопрос новичка по SQL здесь ->

У меня есть таблица происшествий, которая содержит строку каждый раз, когда пользователь что-то делал. Пользователь может делать это несколько раз в день. Это выглядит так:

Date      Username
------    --------
1/1/9     User1
1/1/9     User1
1/1/9     User2
1/2/9     User1
1/2/9     User3
1/3/9     User1
1/3/9     User1
1/3/9     User1
1/3/9     User2
1/3/9     User3

Я хочу, чтобы запрос просто возвращал имя пользователя и количество (количество) уникальных дней, в которые они появляются. Для приведенного выше набора данных результат, который я ищу, будет:

Username    UniqueDaysAppeared
--------    ------------------
User1       3
User2       2
User3       2

Я все время облажался, потому что мой запрос возвращает не количество уникальных дней на пользователя, а скорее общее количество вхождений пользователя.

1 Ответ

20 голосов
/ 24 января 2010
SELECT Username, COUNT(DISTINCT(Date)) AS UniqueDaysAppeared
FROM Occurrences
GROUP BY Username
...