向查询结果添加日期列

iyfamqjs  于 2021-07-26  发布在  Java
关注(0)|答案(2)|浏览(314)

我有下表,想在末尾加一列。
运行数据:

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

谢谢。

bfrts1fy

bfrts1fy1#

只需向 select 条款:

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

wvt8vs2t2#

你可以用 Analytic 函数来获取此数据-
因为您只需要特定日期的数据,所以我在sql中添加了一个条件。如果您选择提取所有日期的数据,请将其删除。

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

from(选择name,sum(miles\u ran)over(按名称分区,按名称排序的日期)miles\u ran\u sum,date from running\u data,其中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;

相关问题