`
20921556
  • 浏览: 94370 次
  • 性别: 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筛选!
分享到:
评论

相关推荐

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

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

    SQL 取n到m条记录

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

    SQL随机提取N条记录

    这里我们将深入探讨如何在SQL中实现这一功能,以满足“SQL随机抽取N条记录”的需求。 首先,我们需要理解SQL的基本查询结构。SQL查询通常包括SELECT语句,用于指定要从数据库中检索哪些列;FROM语句,指定数据源;...

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

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

    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 ...

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

    然而,有时我们需要在分组后获取每个分组的前N条记录,这在处理统计分析或排名问题时非常常见。以下将详细讨论三种在MySQL中使用GROUP BY分组获取前N条记录的方法。 ### 方法一:LEFT JOIN + HAVING子句 这种方法...

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

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

    MySQL获取所有分类的前N条记录

    在MySQL数据库中,获取每个分类的前N条记录是一个常见的查询需求,特别是在处理如文章、商品、用户等分组信息时。以下将详细介绍如何通过SQL语句实现这一功能,并给出三个示例。 首先,我们需要理解基本的SQL语法,...

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

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

    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) ...

    MySQL 多表关联一对多查询实现取最新一条数据的方法示例

    本文实例讲述了MySQL 多表关联一对多查询实现取最新一条数据的方法。分享给大家供大家参考,具体如下: MySQL 多表关联一对多查询取最新的一条数据 遇到的问题 多表关联一对多查询取最新的一条数据,数据出现重复 ...

    分组并排序取前N

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

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

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

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

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

    英语词典SQL数据超过8万条记录

    英语词典SQL数据超过8万条记录,有建表语句,英语词典很完整

    SQL获取第一条记录的方法(sqlserver、oracle、mysql数据库)

    在SQL中,获取第一条记录的方法通常取决于所使用的数据库系统,如SQL Server、Oracle和MySQL。以下将分别介绍这些数据库系统中获取第一条记录的常用技术。 ### SQL Server 获取第一条记录 在SQL Server中,如果你想...

Global site tag (gtag.js) - Google Analytics