Ответ 1
select DateAdded, count(CustID)
from Responses
WHERE DateAdded >=dateadd(day,datediff(day,0,GetDate())- 7,0)
GROUP BY DateAdded
У меня есть таблица в со следующей структурой:
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
select DateAdded, count(CustID)
from tbl
group by DateAdded
около 7-дневного интервала, который зависит от БД
SELECT DateAdded, COUNT(1) AS NUMBERADDBYDAY
FROM Responses
WHERE DateAdded >= dateadd(day,datediff(day,0,GetDate())- 7,0)
GROUP BY DateAdded
SELECT count(*), dateadded FROM Responses
WHERE DateAdded >=dateadd(day,datediff(day,0,GetDate())- 7,0)
group by dateadded
RETURN
Это даст вам количество записей для каждого датированного значения. Не делайте ошибку, добавляя больше столбцов в select, ожидая получить только один счет в день. Предложение group by даст вам строку для каждого уникального экземпляра перечисленных столбцов.
select 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
вы также можете попробовать следующее:
SELECT DISTINCT (DATE (dateadded)) AS unique_date, COUNT (*) AS amount FROM table GROUP BY unique_date ORDER BY unique_date ASC