不会出现在最终结果中的SQL sum记录

不会出现在最终结果中的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

我是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  
我想做的事情- 从表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
的总购买金额。然后,外部查询筛选目标范围内的日期


您没有告诉您正在使用哪个数据库,因此这使用了日期文本的标准语法。您可能需要将其调整为数据库支持的语法。

非常感谢各位,非常有帮助,因为我现在已经整理好了!非常感谢大家,非常有帮助,因为我已经把它整理好了!