不使用交集获取值

时间:2016-02-03 19:49:03

标签: mysql

我需要编写一个SQL查询来查找客户客户编号,他们已经支付了3笔以上的款项并且支付了超过70,000美元。

以下是我迄今为止提出的内容,它仅对 customerNumber&#39>的所有付款超过70000进行分组。我不允许使用交叉点。

SELECT customernumber FROM CLASSICMODELS.PAYMENTS
where amount > 70000
group by customerNumber
having count(*) > 3

1 个答案:

答案 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组。