计算重复项并在MySQL SELECT语句中删除它们

时间:2012-07-24 20:12:13

标签: mysql

我在缠绕这个问题时遇到了一些麻烦。

我有一个带有 Class 字段的汽车数据库,在选择所有条目时,它将包含每个 Class 值的重复项。我需要做的是计算每个 Class 值的所有重复项,然后删除重复项以仅显示每个 Class 值一次带有计数的自定义字段量。

Class  
-----  
A3  
A3  
A3  
A3  
B2  
B2

成为:

Class | Count  
------+---------  
A3    | 4  
B2    | 2

我可以想象某些内容包含Count()方法,但我不知道如何只计算重复值并为每个Class值单独返回值?

提前感谢您提供任何帮助。

2 个答案:

答案 0 :(得分:2)

SELECT Class,COUNT(1) "Count"
FROM Cars GROUP BY Class
HAVING COUNT(1) > 1;

答案 1 :(得分:2)

我认为这就是你要找的东西。这将只显示计数大于1的记录,您需要所有记录的列表,然后删除HAVING子句

SELECT class, count(class) CountClass
FROM cars
GROUP BY class
HAVING count(class) > 1