[英]MySQL: Select records where COUNT
我正在尝试 select 1000 位已下完 1 个订单的客户。 一切都在订单表中。
select * 来自具有 count(CustomerID) = 1 限制 1000 的
Order
所以基本上所有在整个表中只出现一次 CustomerID 的记录。 这将返回一个空结果集,并且表中有 100,000 个。
您需要GROUP
才能(有意义地)使用HAVING
子句。 以下按预期工作:
SELECT
*
FROM
`Order`
GROUP BY
CustomerID
HAVING
COUNT(CustomerID) = 1
LIMIT 1000
更新
添加WHERE
(见评论):
SELECT
*
FROM
`Order`
WHERE
Language = 'EN'
GROUP BY
CustomerID
HAVING
COUNT(CustomerID) = 1
LIMIT 1000
SELECT * FROM `Order`
GROUP BY CustomerID
HAVING COUNT(CustomerID) = 1
LIMIT 1000
尝试
select count(CustomerID) as counter ,o.* from Order o
group by CustomerID having counter = 1 limit 1000
添加 group by 以查询正确的 output,例如:
select * 来自 Order group by CustomerID 有 count(CustomerID) = 1 limit 1000
SELECT 来自Order
组的客户 ID 按客户 ID 有计数 (*) = 1 限制 1000
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.