запрос между двумя датами в MySQL, сгруппированный по диапазону дней - PullRequest
0 голосов
/ 27 марта 2020

Я использую DOMO с SQL. У меня есть два столбца в моем наборе данных: Date и Revenue. Я хочу получить данные только с 1 марта 2019 года и сгруппировать их еженедельно, поэтому я вижу только сумму выручки за 1 неделю с 1 марта 2019 года и далее.

Я хочу, чтобы выходные данные были чем-то как это:

Date                      Revenue
March 1st - 7th, 2019        123 
March 8th - 15th, 2019       124

Я пробовал следующее:

select '2019-03-01' AS `Date`,
ADDDATE('2019-03-01',INTERVAL 1 WEEK) AS '+1 Week'

Но он возвращает только одну дату '2019-03-08'

1 Ответ

1 голос
/ 27 марта 2020
SELECT WeekNumber, SUM(Revenue) 
FROM (SELECT DATEDIFF(week, '2019-03-01', Date) AS WeekNumber, Revenue FROM Table)
GROUP BY WeekNumber;

Эта команда SQL должна давать вам еженедельный доход от вашей базы данных.

DATEDIFF( date_part , start_date , end_date)

Функция DATEDIFF () возвращает значение целого числа, указывающее разницу между start_date и end_date, с единицей измерения, указанной в date_part. В нашей команде он дает нам номер недели для даты в каждой строке.

Из внутренней функции SQL,

SELECT DATEDIFF(week, '2019-03-01', Date) AS WeekNumber, Revenue FROM Table

мы получаем новую таблицу с номером недели и доход для каждой строки в исходной таблице. Теперь мы сгруппируем их по номеру недели и суммируем столбец дохода.

...