Sql 如何执行此查询以选择按列排序的数字最高的N行

Sql 如何执行此查询以选择按列排序的数字最高的N行,sql,greatest-n-per-group,Sql,Greatest N Per Group,假设我有一个表,它有三列:ID、Name和Users 我想选择用户数最多的3行,我想按名称升序排列这些行。我怎样才能做到这一点 我曾经 select Name from TABLE where ID IN (select ID from Tablesorder by Users desc limit 3) 但不支持IN/ANY。还有别的办法吗? 谢谢当允许子查询时,您可以使用它。 它为列用户获取具有最高值的3条记录。这3个结果将在外部查询中排序 select Name from (

假设我有一个表,它有三列:ID、Name和Users

我想选择用户数最多的3行,我想按名称升序排列这些行。我怎样才能做到这一点

我曾经

select Name from TABLE where  ID IN (select ID from Tablesorder by  Users desc  limit 3) 
但不支持IN/ANY。还有别的办法吗?
谢谢

当允许子查询时,您可以使用它。 它为列用户获取具有最高值的3条记录。这3个结果将在外部查询中排序

select Name from 
(
    select Name 
    from Tables 
    order by  Users desc  
    limit 3
) as temp
ORDER BY Name ASC
在Mysql中:

SELECT id, name, users
FROM (SELECT id,name,users FROM tablename ORDER BY users DESC LIMIT 3) as a
ORDER BY name;
在Sql server中

SELECT id, name, users
FROM (SELECT TOP 3 id,name,users FROM tablename ORDER BY users DESC ) as a
ORDER BY name;
在甲骨文中

SELECT id, name, users
FROM (SELECT id,name,users FROM tablename ORDER BY users DESC ) as a
WHERE ROWNUM<=3
ORDER BY name;

SQL的哪个版本?你在使用哪个数据库我的意思是说mysql。。谢谢你的回答,不要写ASC。它的默认情况是ORDER BYNo-need,但是OP会更清楚。OP的示例查询包含“LIMIT 3”。我认为Oracle和SqlServer示例是不必要的。