`
20921556
  • 浏览: 94623 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

SQL分类排名,取前N条记录

sql 
阅读更多
SQL分类排名,取前N条记录

表有名字,成绩2个字段

----按成绩排名,按人名,选择成绩最高的2条记录
select name,result,count(*) from (
select A.name,B.result from table1 A,table1 B where A.name = B.name and A.result <= B.result
) group by A.name,B.result having count(result) <= 2  ORDER BY NAME,RESULT DESC

----按成绩排名,按人名,选择成绩最低的2条记录
select name,result,count(*) from (
select A.name,B.result from table1 A,table1 B where A.name = B.name and A.result >= B.result
) group by A.name,B.result having count(result) <= 2  ORDER BY NAME,RESULT DESC

核心思路,是通过自关联,使其出现重复记录,然后再通过分组,求count进行having筛选!
分享到:
评论

相关推荐

    mysql使用GROUP BY分组实现取前N条记录的方法

    本文实例讲述了mysql使用GROUP BY分组实现取前N条记录的方法。分享给大家供大家参考,具体如下: MySQL中GROUP BY分组取前N条记录实现 mysql分组,取记录 GROUP BY之后如何取每组的前两位下面我来讲述mysql中GROUP BY...

    SQL查找某记录的前后N条数据

    SQL查找某记录的前后N条数据 SQL查找某记录的前后N条记录

    SQL 取n到m条记录

    ### SQL取n到m条记录的关键知识点 #### 一、SQL查询特定范围记录的方法与应用场景 在数据库管理中,有时我们需要获取数据表中特定范围的记录。例如,当我们想要显示第n条到第m条记录时,就需要用到特定的SQL语句来...

    三种数据库不同的取前10条记录

    MySQL数据库提供了更为简单的语法来获取前N条记录,即使用`LIMIT`关键字。 **示例代码:** ```sql SELECT t.* FROM tableName t WHERE &lt;其他条件&gt; ORDER BY &lt;排序字段&gt; LIMIT 10; ``` 在这段代码中: - `&lt;其他...

    查询前几条记录

    在MySQL中,如果我们要查询前N条记录,可以这样写: ```sql SELECT * FROM 表名 LIMIT N; ``` 这里的`N`就是我们想要的记录数。如果你还需要指定从哪一条开始取,可以配合`OFFSET`关键字: ```sql SELECT * FROM ...

    SQL Server查询前N条记录的常用方法小结

    在SQL Server中,查询前N条记录是常见的需求,特别是在数据检索或数据分析的场景中。以下将详细讲解三种常用的方法来实现这一操作。 方法一:使用`TOP`关键字与`NOT IN`子句 这种方法是通过先查询出前10条记录,...

    mysql分组取每组前几条记录(排名) 附group by与order by的研究

    –按某一字段分组取最大(小)值所在行的数据 代码如下: /* 数据如下: nameval memo a 2 a2(a的第二个值) a 1 a1–a的第一个值 a 3 a3:a的第三个值 b 1 b1–b的第一个值 b 3 b3:b的第三个值 b 2 b2b2b2b2 b 4 b4b4 b ...

    SQL把一条记录金额平分到n个人并进行汇总.txt

    SQL把一条记录金额平分到n个人并进行汇总.txt,这里说的是Access数据库中,如何将同一条记录金额平分到n个人里,金额会按照实际人数进行平分,空的则不平分,如:一条记录有三个营业员字段,但是实际不知道有几个...

    SQL查询前10条记录(SqlServermysqloracle)语法分析.docx

    总结来说,SQL Server、MySQL和Oracle都有各自的方法来查询数据库中的前N条记录。理解并熟练掌握这些语法对于进行有效的数据库操作至关重要,尤其是在处理大量数据时的分页查询。通过调整相应的参数,我们可以轻松地...

    SQL排除重复结果只取字段最大值分享

    如何用SQL排除重复结果只取字段最大值的记录?要求得到的结果(即是PID相同的记录只取ID值最大的那一条)。 代码如下:select * from [Sheet1$] awhere ID not exists (select 1 from [Sheet1$] where PID=a.PID and...

    Sql语句 查询本周记录\本月记录\本季度记录\本年记录

    SQL 语句查询本周记录、本月记录、本季度记录、本年记录是数据库查询中常见的操作。本文将为您提供 MySQL 和 SQL Server 两种数据库管理系统的查询语句,帮助您快速实现这些查询操作。 查询本周记录 MySQL 中,您...

    mysql彻底理解删除重复记录sql脚本,只保留一条记录

    mysql彻底理解删除重复记录sql脚本,只保留一条记录

    Hibernate_NSQL&HQL增删改操作

    ### Hibernate中的NSQL与HQL增删改操作详解 #### NSQL(Native SQL)与HQL(Hibernate Query Language) 在Hibernate框架中,进行数据库操作时,开发者可以选择使用两种不同的查询语言:NSQL(Native SQL)和HQL...

    易语言SQL基本语句模块

    易语言SQL基本语句模块源码,SQL基本语句模块,SQL_查询,SQL_添加,SQL_更新,SQL_删除,SQL_删除表,SQL_清空表,SQL_取记录数,SQL_取平均值,SQL_取最小值,SQL_取最大值,SQL_取首记录字段值,SQL_取尾记录字段值,SQL_取总计...

    [sql server]SQL Server2005杂谈(3):四个排名函数的比较.doc

    在 t_table 表中,如果使用 rank 函数来生成序号,这 3 条记录的序号是相同的,而第 4 条记录会根据当前的记录数生成序号,后面的记录依此类推。 rank 函数的用法如下所示: select rank() over(order by field1) ...

    分组并排序取前N

    标题“分组并排序取前N”涉及到数据库查询中的一个重要概念,这通常指的是在SQL查询中使用`GROUP BY`、`ORDER BY`以及`LIMIT`子句来对数据进行分组、排序,并提取出每组中排名靠前的N条记录。在数据库管理中,这种...

    组态王如何将报警记录存储到sql数据库中

    组态王报警记录存储到SQL数据库中 组态王是一种流行的工业自动化软件,广泛应用于制造业、能源、交通等领域。该软件可以实现实时数据采集、监控和控制,提高生产效率和产品质量。但是,组态王的报警记录功能缺乏...

    Oracle左连接返回多条记录中一条记录的查询语句

    Oracle左连接返回多条记录中一条记录的查询语句,更具指定条件分组排序,返回各组中第一条记录

    SqlServer,将多行记录按分组信息一行显示

    SqlServer将多行记录按分组信息一行显示

    SQLServer2005一千万条以上记录分页数据库优化经验总结

    资源名称:SQL Server 2005 一千万条以上记录分页数据库优化经验总结 资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。

Global site tag (gtag.js) - Google Analytics