SQL 汇总不会出现在最终结果中的记录
SQL sum records that wont appear in the final result
SQL 的新手,我有一个问题我不太能解决
表 1
ID name purchase_date purchase_value
---------------------------------------------------
1 John Doe 01/01/2020 10
1 John Doe 30/01/2020 25
1 John Doe 20/02/2020 20
2 Santa Claus 01/01/2020 15
我想做的事 –
Select 来自 table1 的记录在设定的日期范围内(为了示例,可以说比 19/2/2020 最近),但我想显示记录的总支出,无论它们是否在范围
例如我要展示
ID name purchase_date purchase_value Total_Purchase_value
---------------------------------------------------------------------
1 John Doe 20/02/2020 20 55
圣诞老人根本没有出现,因为他在日期范围内没有购买,我只看到 John Doe 在 19/2/2020 之后的购买记录,但总购买价值总和他的所有 3 笔交易
您可以使用 window 函数:
select t.*,
from (select t.*, sum(purchase_value) over (partition by id) as total
from t
) t
where date >= '2020-02-19'
您可以使用 window 函数:
select *
from (
select t.*, sum(purchase_value) over(partition by id) total_purchase_value
from table1 t
) t
where purchase_date > date '2020-02-19'
在子查询中,window sum()
计算每个 id
的总购买金额。然后,外部查询过滤目标范围内的日期。
您没有说明您使用的是哪个数据库,因此这里使用日期文字的标准语法。您可能需要将其调整为您的数据库支持的语法。
SQL 的新手,我有一个问题我不太能解决
表 1
ID name purchase_date purchase_value
---------------------------------------------------
1 John Doe 01/01/2020 10
1 John Doe 30/01/2020 25
1 John Doe 20/02/2020 20
2 Santa Claus 01/01/2020 15
我想做的事 – Select 来自 table1 的记录在设定的日期范围内(为了示例,可以说比 19/2/2020 最近),但我想显示记录的总支出,无论它们是否在范围
例如我要展示
ID name purchase_date purchase_value Total_Purchase_value
---------------------------------------------------------------------
1 John Doe 20/02/2020 20 55
圣诞老人根本没有出现,因为他在日期范围内没有购买,我只看到 John Doe 在 19/2/2020 之后的购买记录,但总购买价值总和他的所有 3 笔交易
您可以使用 window 函数:
select t.*,
from (select t.*, sum(purchase_value) over (partition by id) as total
from t
) t
where date >= '2020-02-19'
您可以使用 window 函数:
select *
from (
select t.*, sum(purchase_value) over(partition by id) total_purchase_value
from table1 t
) t
where purchase_date > date '2020-02-19'
在子查询中,window sum()
计算每个 id
的总购买金额。然后,外部查询过滤目标范围内的日期。
您没有说明您使用的是哪个数据库,因此这里使用日期文字的标准语法。您可能需要将其调整为您的数据库支持的语法。