在MYSQL Where子句中使用COUNT(*)作为'COUNT'
我试图在一列中查找、计数和报告所有重复条目的实例。你知道如何做到这一点吗?类似于我下面的尝试在MYSQL Where子句中使用COUNT(*)作为'COUNT',mysql,count,Mysql,Count,我试图在一列中查找、计数和报告所有重复条目的实例。你知道如何做到这一点吗?类似于我下面的尝试 SELECT `Id`, COUNT(*) AS `COUNT` FROM `testproductdata` WHERE `COUNT` > 1 GROUP BY `Id` ORDER BY `COUNT` DESC; 我得到一个1054错误:where子句中的未知列COUNT 尝试向查询中添加DISTINCT SELECT * FROM ( SELECT DISTINCT `Id`, (SE
SELECT `Id`, COUNT(*) AS `COUNT`
FROM `testproductdata`
WHERE `COUNT` > 1
GROUP BY `Id`
ORDER BY `COUNT` DESC;
我得到一个1054错误:where子句中的未知列
COUNT
尝试向查询中添加DISTINCT
SELECT * FROM (
SELECT DISTINCT `Id`, (SELECT COUNT(Id) FROM `testproductdata` WHERE `Id`=`Id`) `count`
FROM `testproductdata`
GROUP BY `Id`
HAVING `count` > 1
)
ORDER BY `count` DESC;
试试这个
select * from
(SELECT `Id`, COUNT(*) AS `c`
FROM `testproductdata`
group by `Id`)
WHERE `c` > 1
ORDER BY `c` DESC;
或
使用
将置于上,其中与分组方式一起使用
SELECT `Id`, COUNT(*) AS `COUNT`
FROM `testproductdata`
GROUP BY `Id`
HAVING `COUNT` > 1
ORDER BY `COUNT` DESC;
我建议使用相关名称来表示count(*)
作为total\u count
thancount
更改查询如下:
SELECT `Id`, COUNT(*) AS `total_count`
FROM `testproductdata`
GROUP BY `Id`
HAVING `total_count` > 1
ORDER BY `total_count` DESC;
您应该更改“拥有”的位置,这应该可以:
SELECT Id, COUNT(1) AS count
FROM testproductdata
GROUP BY Id
HAVING COUNT(1) > 1
ORDER BY COUNT(1) DESC;
我得到一个1054错误:where子句中的列计数未知。为什么不?。哦哈哈哈。。。我看到XD--需要重命名字段。。。另外,不要将用作。。。“只有空间。”萨努埃尔·杰克逊还没有。“一般来说,使用的子句必须完全按照语法描述中显示的顺序给出。例如,HAVING子句必须位于任何GROUP BY子句之后,任何order BY子句之前。”请参阅使用GROUP BY。。拥有COUNT、self-join或嵌套select。这样就行了,你能把它作为答案提交给我,这样我就可以接受它了。@Eric:嗯,另一个MySQL的奇怪之处(或至少是不同之处)让我印象深刻。它行得通。更好的做法是不要使用likecount
作为标识符,尽管这是一种可以接受的无回勾的方法
SELECT Id, COUNT(1) AS count
FROM testproductdata
GROUP BY Id
HAVING COUNT(1) > 1
ORDER BY COUNT(1) DESC;