在多个条件下如何使用拥有?

时间:2019-04-15 21:30:35

标签: sql teradata having

在以下代码中,如何排除会员每年超过500美元的支出(而不是所有年度的总支出)?

 select 

Year
,month
,memberkey
,sum(spending) as spending

from table1
group by 
1,2,3 

1 个答案:

答案 0 :(得分:0)

HAVING子句在这里不起作用,因为您确实想在YEAR级别进行汇总以确定应包括哪些记录。传统上,您将使用相关子查询来执行此操作,但是在Teradata中,您可以使用QUALIFY子句:

SELECT "Year"
  ,"Month"
  ,MemberKey
  ,spending
from table1
QUALIFY sum(spending) OVER (PARTITION BY "Year", MemberID) < 500