MySQL 中按日期范围分组的两个日期之间的查询

query between two dates in MySQL grouped by range of days

我在 SQL 中使用 DOMO。我的数据集中有两列:DateRevenue。我只想获取从 2019 年 3 月 1 日开始的数据并将其每周分组,所以我只看到从 2019 年 3 月 1 日开始的 1 周的收入总和。

我希望输出是这样的:

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'

但它只有 returns 一个日期 '2019-03-08'

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()函数returns一个整数值,表示start_date和end_date之间的差异,单位由date_part指定。在我们的命令中,它为我们提供了每一行中日期的周数。

来自内部 SQL 函数,

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

我们获得了一个新的 table,其中包含原始 table 中每行的周数和收入。现在,我们根据周数对它们进行分组并汇总收入列。