【问题标题】:query between two dates in MySQL grouped by range of daysMySQL中两个日期之间的查询,按天数分组
【发布时间】:2020-07-08 06:55:31
【问题描述】:

我正在使用带有 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'

但它只返回一个日期'2019-03-08'

【问题讨论】:

    标签: mysql domo


    【解决方案1】:
    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
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-24
      • 2023-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-25
      相关资源
      最近更新 更多