group by语句显示记录条数问题

来源:百度知道 编辑:UC知道 时间:2024/05/13 00:53:29
ACCESS中用"select top 2 姓名, count(姓名) from 表1 group by 姓名"查询

我只需要显示两行记录,但是当有多个姓名出现次数相同的时候就会出现多行,有什么办法解决?
比如显示
张三 3
王五 2
黄六 2
按沉默用户给出的:SELECT TOP 2 *
FROM (select 姓名, count(姓名) as 人数 from 表1 group by 姓名) AS tmp
ORDER BY 人数 DESC
可以执行下去,但当人数相同的时候还是会出现多条记录,比如只有5条记录,分别是5个不同人名,这样虽然写top 2但还是会显示5行

给count(姓名)使用一个别名,另外子查询要用圆括号不要用方括号扩起来。

SELECT TOP 2 *
FROM (select 姓名, count(姓名) as 人数 from 表1 group by 姓名) AS tmp
ORDER BY 人数 DESC

select top 2 from (select 姓名, count(姓名) from 表1 group by 姓名) tmp

你语句后面直接加order by不就行了么
select top 2 姓名, count(姓名) from 表1 group by 姓名 ORDER BY count(姓名) DESC

另外就是只有oracle 才支持select from(select )这种格式,SQL SERVER是不行的所以要报错