【问题标题】:Adding a date column to a query result在查询结果中添加日期列
【发布时间】:2020-11-04 08:05:23
【问题描述】:

我有下表,想在最后添加一列。

运行数据:

name      miles_ran     date
josh      1             2020-01-01
troy      2             2020-01-01
mark      1             2020-01-01
josh      1             2020-01-01
troy      1             2020-01-02

我想按人分组,看看他们在某个日期跑了多少英里,所以我想出了以下查询。

SELECT name, SUM(miles_ran) FROM running_data WHERE date = '2020-01-01' GROUP BY name;

此查询结果如下:

name     miles_ran_sum
josh     2
troy     2
mark     1

但是,我想在所有行的末尾添加一列“2020-01-01”。我该怎么做呢?

name     miles_ran_sum   date
josh     2               2020-01-01
troy     2               2020-01-01
mark     1               2020-01-01

谢谢。

【问题讨论】:

    标签: mysql sql date sum


    【解决方案1】:

    只需在select 子句中添加一个具有文字、固定值的列:

    SELECT name, SUM(miles_ran) total_miles_ran, '2020-01-01' date
    FROM running_data 
    WHERE date = '2020-01-01' 
    GROUP BY name;
    

    【讨论】:

      【解决方案2】:

      您可以使用Analytic 函数来获取此数据-

      由于您只需要特定日期的数据,因此我在 SQL 中添加了一个条件。如果您选择提取所有日期的数据,可以将其删除。

      Select distinct t.name, t.miles_ran_sum, t.date 
      

      from (SELECT name, SUM(miles_ran) over (partition by name, date order by name) miles_ran_sum, date FROM running_data where date = '2020-01-01') t;

      另一种方式-

      select name, date, sum(miles_ran) as miles_ran_sum
      from running_data where date = '2020-01-01'
      group by name, date;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-02-07
        • 2020-08-10
        • 1970-01-01
        • 1970-01-01
        • 2017-06-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多