不会出现在最终结果中的SQL sum记录
我是SQL新手,有一个问题我还没有完全解决 表1不会出现在最终结果中的SQL sum记录,sql,datetime,sum,where-clause,window-functions,Sql,Datetime,Sum,Where Clause,Window Functions,我是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/20
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
我想做的事情-
从表1中选择在设定日期范围内的记录(为了示例起见,让我们说比2020年2月19日更近),但我想显示记录的总花费,不管它们是否在该范围内
我想展示一下
ID name purchase_date purchase_value Total_Purchase_value
---------------------------------------------------------------------
1 John Doe 20/02/2020 20 55
Ie Santa Clause根本没有出现,因为他在日期范围内没有购买物品,我只看到John Doe在2020年2月19日之后购买物品的一条记录,但总购买价值是他所有3笔交易的总和您可以使用窗口功能:
select t.*,
from (select t.*, sum(purchase_value) over (partition by id) as total
from t
) t
where date >= '2020-02-19'
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'
您可以使用窗口功能:
select t.*,
from (select t.*, sum(purchase_value) over (partition by id) as total
from t
) t
where date >= '2020-02-19'
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'
在子查询中,窗口sum()
计算每个id
的总购买金额。然后,外部查询筛选目标范围内的日期
您没有告诉您正在使用哪个数据库,因此这使用了日期文本的标准语法。您可能需要将其调整为数据库支持的语法。非常感谢各位,非常有帮助,因为我现在已经整理好了!非常感谢大家,非常有帮助,因为我已经把它整理好了!