mysql计数重复

Nov*_*ice 11 mysql

我如何计算重复行与选择语句

这是我的桌子

name food  
A    Apple  
B    Banana  
A    Banana  
C    Apple  
Run Code Online (Sandbox Code Playgroud)

结果应该是这样的:

name food count
A    apple (2)  
B    Banana (1)  
A    Bananaa (2)  
C    Apple (1)  
Run Code Online (Sandbox Code Playgroud)

我需要在结果集中使用第三个coloumn,其值将为count(Name)

提前致谢

Dan*_*uis 32

目前还不清楚你想要做什么,所以这里有两种可能性.

如果要确定相同namefood组合发生的次数,可以使用GROUP BY对类似记录进行分组并COUNT确定组中有多少个:

SELECT name, food, COUNT(*) AS count
FROM your_table_name
GROUP BY name, food
Run Code Online (Sandbox Code Playgroud)

或者,如果要检索只有名称重复的次数,则需要子查询:

SELECT name, food,
  (
    SELECT COUNT(*)
    FROM your_table_name
    WHERE name = table_alias.name
  ) AS count
FROM your_table_name AS table_alias
Run Code Online (Sandbox Code Playgroud)

第一个查询将每个name/ food组返回一行,以及组中显示的记录数.第二个查询将返回所有行,并计算每行中具有相同名称的行数.


Mar*_*c B 32

SELECT name, food, COUNT(food) AS cnt
FROM table
GROUP BY name, food
HAVING (cnt > 1)
Run Code Online (Sandbox Code Playgroud)

如果你想要所有内容的计数,而不仅仅是带有重复项的元组,那么就消除HAVING行,因为它会过滤掉任何没有重复的内容.