sql如何实现分组并select出每组前10个

如题所述

select m, n
from (
    select row_number () over (partition by m order by n desc) rn,--以m分组,分组内以n倒序排列求每组中各自的序号
        m, n
    from table
    where ...
) w
where w.rn <=10;序号小于10
order by m, n desc

温馨提示:内容为网友见解,仅供参考
无其他回答

sql如何实现分组并select出每组前10个
select m, nfrom ( select row_number () over (partition by m order by n desc) rn,--以m分组,分组内以n倒序排列求每组中各自的序号 m, n from table where ...) wwhere w.rn <=10;序号小于10order by m, n desc ...

sql语句 分组查询前10条数据
class classid classname product classid proname num select top 10 c.classid ,c.classname,sum(p.num) from class c,product p where p.classid=c.classid group by c.classid order by sum(p.num) desc 有的不能用top。,不同数据库软件查询好像有细微的差别。

sql查询 从一张表中找到每个班成绩排在第十名的信息。
--按成绩降序排列 取前10个即可 select a.number,b.class,b.score from st_score as a join (select top(1) t.class,t.score from (select top 10 class,score from st_score group by class order by score desc) as t order by t.score) as b on a.class=b.class and a.scor...

SQL语句如何取前10条,10-30条记录?
select column from table where 1=1 fetch first 10 rows only mysql:select * from table1 where 1=1 limit 10 sql server:读取前10条:select top (10) * from table1 where 1=1 读取后10条:select top (10) * from table1 order by id desc oracle:select * from table1 where ...

t-sql数据分组
在T-SQL中,数据分组是一项重要操作,用于对数据进行聚合和分析。首先,我们可以使用`SELECT`语句获取前几条数据,如选取订单详情表(ordredetails)中前10个金额最高的记录,通过`ORDER BY amt DESC`排列,其中`amt`字段为单价乘以数量:SELECT top 10 orderid,amt=unitprice*quantityFROM ordredetails ...

SQL如何对分组后的结果进行排序并且取前几名
SQL取分组中的前几名 [sql] www.2cto.com create table #aa(class varchar(10),name varchar(10),lang int,math int)go insert into #aa select '1','a1',60,70 union all select '1','a2',80,70 union all select '1','a3',90,70 union all select '1','a4',50,70 go ...

MySql查询前10条数据sql语句是
如果你需要了解其他数据库系统的查询方法,这里提供一些参考:在SQL Server中,可以使用SELECT top X * FROM table_name,其中X是你想要获取的行数;在Oracle中,使用SELECT * FROM table_name WHERE rownum < X,rownum是一个伪列,通常用于排序和分页;而在Informix中,查询前10条记录的语句是SELECT ...

SQL统计出所有科目总分最高的前10位
你好, 很高兴为你解答 因为不太清楚你的科目与总分是在一个表中, 还是两个, 如果假设是一个的化 表中有科目 和总分, 那样科目的ID因该是主键 select top 10 科目,总分 from 科目表 order by 总分 desc 希望有所帮助

sql 查询每个班前十名
首先,班级要一张表 学生信息要一张表 成绩一张表 建数据库要有遵守三条原则啊,不然也很不方便查询 你这题,用分组也没办查. 楼上两位完全就是骗分的...没一个正确的 就说一楼的这句SELECT TOP 10 * FROM 表名 WHERE 条件 ORDER BY 成绩 DESC ...请问条件是什么?再说二楼的selet top 10...

oracle得到每个月的前十条数据
实现思路就是先通取出所有的满足条件的数据,之后找到前面的10条数据。select t.* from (select 表名.*,row_number() over (partition by t_year||t_tmonth order by id) rn from 表名) t where rn<=10 备注:必须先通过over方法分组month找到符合条件的数据,之后在取出前10条。

相似回答