我需要编写一个SQL查询来查找客户的客户编号,他们已经支付了3笔以上的款项并且支付了超过70,000美元。
以下是我迄今为止提出的内容,它仅对 customerNumber&#39>的所有付款超过70000进行分组。我不允许使用交叉点。
SELECT customernumber FROM CLASSICMODELS.PAYMENTS
where amount > 70000
group by customerNumber
having count(*) > 3
答案 0 :(得分:0)
将谓词移动到HAVING
子句:
SELECT customernumber
FROM CLASSICMODELS.PAYMENTS
GROUP BY customerNumber
HAVING COUNT(*) > 3 AND COUNT(CASE WHEN amount > 70000 THEN 1 END) = 1
COUNT
子句中HAVING
的条件聚合会捕获customerNumber
个单行amount > 70000
组。