如何获得不同值的数量? MySQL的

时间:2014-10-25 15:30:14

标签: mysql sql

我有这张桌子:

rowId --- bussId 
------------------
  1         120
  2         86
  3         86
  4         251
  5         245
  6         301
  7         301

我想得到:

  1. 不同bussId值的数量=> bussId值 :count(120,86,251,245,301)= 5
  2. 上面具有相同bussId的行数 表“第二行和第三行是相同的”和“6行和7行是相同的”。所以查询 将返回2.
  3. 我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

1.) select Count(distinct bussid) from table
2.) select count(bussId) from table Group by bussId having Count(bussId)>1

答案 1 :(得分:0)

如果要计算重复项,则可以使用子查询:

select count(*)
from (select bussid, count(*) as numrows
      from table t
      group by bussid
     ) t
where numrows > 1;

您似乎找到了第一个问题的解决方案,但您可以将两者放在一个查询中:

select count(*) as Answer1, sum(numrows > 1) as Answer2
from (select bussid, count(*) as numrows
      from table t
      group by bussid
     ) t;