Вопрос:
У меня есть таблица в со следующей структурой:
CustID — DateAdded — 396 2012-02-09 396 2012-02-09 396 2012-02-08 396 2012-02-07 396 2012-02-07 396 2012-02-07 396 2012-02-06 396 2012-02-06
Я хотел бы знать, как я могу подсчитать количество записей в день, за последние 7 дней в SQL, а затем вернуть это как целое число.
В настоящее время я написал следующий SQL-запрос:
SELECT * FROM Responses WHERE DateAdded >= dateadd(day, datediff(day, 0, GetDate()) — 7, 0) RETURN
Однако это возвращает только все записи за последние 7 дней. Как я могу подсчитать записи в день за последние 7 дней?
Лучший ответ:select DateAdded, count(CustID) from Responses WHERE DateAdded >=dateadd(day,datediff(day,0,GetDate())- 7,0) GROUP BY DateAdded Ответ №1select DateAdded, count(CustID) from tbl group by DateAdded
около 7-дневного интервала, который зависит от БД
Ответ №2SELECT DateAdded, COUNT(1) AS NUMBERADDBYDAY FROM Responses WHERE DateAdded >= dateadd(day,datediff(day,0,GetDate())- 7,0) GROUP BY DateAdded Ответ №3SELECT count(*), dateadded FROM Responses WHERE DateAdded >=dateadd(day,datediff(day,0,GetDate())- 7,0) group by dateadded RETURN
Это даст вам количество записей для каждого датированного значения. Не делайте ошибку, добавляя больше столбцов в select, ожидая получить только один счет в день. Предложение group by даст вам строку для каждого уникального экземпляра перечисленных столбцов.
Ответ №4select DateAdded, count(DateAdded) as num_records from your_table WHERE DateAdded >=dateadd(day,datediff(day,0,GetDate())- 7,0) group by DateAdded order by DateAdded Ответ №5
вы также можете попробовать следующее:
SELECT DISTINCT (DATE (dateadded)) AS unique_date, COUNT (*) AS amount
FROM table
GROUP BY unique_date
ORDER BY unique_date ASC