繁体   English   中英

MySQL:Select 记录其中 COUNT

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM