我需要编写一个SQL查询来查找已付款3次以上且单笔付款超过70,000美元的客户的客户数量。

到目前为止,这是我提出的,仅将所有付款都超过70000的customerNumber分组。不允许使用交集。

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

最佳答案

将谓词移至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组。

关于mysql - 在不使用交集的情况下获取值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35186331/

10-10 06:51