SQL Количество по дате - PullRequest
       10

SQL Количество по дате

0 голосов
/ 09 октября 2018

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

У меня есть следующий запрос:

SELECT COUNT(dtm_SignUpDate) as TotalSignUpsPerDay, dtm_SignUpDate as Count_Date
FROM tbl_Account
GROUP BY DATEADD(dd, 0, DATEDIFF(dd, 0, dtm_SignUpDate)) 

, но получаем

Столбец 'tbl_Account.dtm_SignUpDate 'недопустим в списке выбора, поскольку он не содержится ни в статистической функции, ни в предложении GROUP BY.

что мне нужно изменить, чтобы заставить это работать.

Я перешел по этой ссылке ( Счетчик SQL для каждой даты ), но все равно возникла та же ошибка, что и описанная выше.

Ответы [ 2 ]

0 голосов
/ 09 октября 2018

Просто используйте усеченную дату в предложении select как есть, это уже дата с удаленными часами / минутами / секундами:

SELECT
    COUNT(dtm_SignUpDate) AS TotalSignUpsPerDay,
    DATEADD(dd, 0, DATEDIFF(dd, 0, dtm_SignUpDate)) AS Count_Date
FROM tbl_Account
GROUP BY
    DATEADD(dd, 0, DATEDIFF(dd, 0, dtm_SignUpDate))

PS: люди перестали использовать DATEADD(dd, 0, ...) для усечения длинных датдавно.Вы можете просто использовать CAST(DateTimeVal AS DATE).

0 голосов
/ 09 октября 2018

Как насчет этого?

SELECT cast(dtm_SignUpDate as date) as dtm_SignUpDate, count(*) as TotalSignUpsPerDay
FROM tbl_Account
GROUP BY cast(dtm_SignUpDate as date)
ORDER BY cast(dtm_SignUpDate as date);

Если dtmSignUpDate уже является датой без компонента времени, то:

SELECT dtm_SignUpDate, count(*) as TotalSignUpsPerDay
FROM tbl_Account
GROUP BY dtm_SignUpDate
ORDER BY dtm_SignUpDate ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...