如何计算MySQL列中重复条目的数量

时间:2013-03-05 19:03:28

标签: mysql count

我在MySQL表中有两列:

bname和count

 bname           count        
----------      ----------


 Blah              2

 Blah              2

 huh               3

 lol               1

 huh               3

 huh               3

我想要这样的东西。我已经创建了count列但我不知道如何像上面的例子一样显示它。 count列当前为空。

2 个答案:

答案 0 :(得分:6)

你应该使用好的旧组......

select bname, count(*) 
from mytable 
group by bname

这将按唯一值对行进行分组,并提供每个组的行数。

如果您想将它存储在表格中:

UPDATE myTable updated
JOIN (select bname, count(*) as cnt 
    from mytable 
    group by bname) aggregate 
  ON updated.bname= aggregate.bname
set `count`= aggregate.cnt 

注意反引号,我认为你需要在这里

这应该将所有行设置为各自的重复次数。

SQL Fiddle here

答案 1 :(得分:0)

如果要运行查询:

select bname,
       (select count(*) from t t2 where t2.bname = t.bname) as cnt
from t

这将为您提供每行的附加列。

如果要填写值,请使用update

update t
    set count = (select count(*) from t t2 where t2.bname = t.bname)

这实际上将表中的值更改为计数。