本文为原创,如需转载,请注明作者和出处,谢谢!
假设有一个表,SQL语句如下:
<!-- <br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->CREATE
TABLE
[
dbo
]
.
[
scan
]
(
[
km
]
[
int
]
NULL
,
[
kh
]
[
int
]
NULL
,
[
cj
]
[
int
]
NULL
)
ON
[
PRIMARY
]
其中km为科目号、kh为考生号、cj为成绩,现对km和kh进行分组,并获得每组前2条记录(按cj从高到低排序)。基本思想是为每组加一个序号列,再用where取序号小于等于2的。SQL语句如下:
<!-- <br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->select
*
from
(
select
a.km,a.kh,cj,row_number()
over
(partition
by
a.km
order
by
a.km,a.cj
desc
)n
from
(
select
km,kh,
SUM
(cj)cj
from
scan
group
by
km,kh)a
)b
where
n
<=
2
order
by
km,cj
desc
最后得到的结果集如下图所示。
国内最棒的Google Android技术社区(eoeandroid),欢迎访问!
《银河系列原创教程》
发布
《Java Web开发速学宝典》
出版,欢迎定购
分享到:
相关推荐
例如,使用TOP关键字可以实现只查询表中的前N条记录,使用GROUP BY和HAVING可以实现数据的分组统计,而嵌套查询、集合查询和连接查询则是实现复杂查询的主要方法。 总之,SQL Server 2005入门级知识点繁多,但主要...
您可能感兴趣的文章:分组后分组合计以及总计SQL语句(稍微整理了一下)MYSQL每隔10分钟进行分组统计的实现方法mysql使用GROUP BY分组实现取前N条记录的方法详解MySQL中的分组查询与连接查询语句sql server如何利用...
《Microsoft SQL Server 2008技术内幕:T-SQL查询》全面深入地介绍了Microsoft SQL Server 2008中高级T-SQL查询、性能优化等方面的内容,以及SQL Server 2008新增加的一些特性。主要内容包括SQL的基础理论、查询优化...
在给定的标题和描述中,我们关注的是如何利用`NTILE`来获取每组数据的前10%。下面将详细解释`NTILE`函数的工作原理以及如何运用它来实现这个目标。 **NTILE函数详解** `NTILE(n)`函数将结果集分成n个组,每个组尽...
在SELECT子句中,可以使用`DISTINCT`去除重复行,`TOP n`限制返回的记录数,例如`TOP 5`将返回前五条记录。`PERCENT`可以与`TOP`一起使用,表示返回百分比的记录,如`TOP 20 PERCENT`返回表中20%的记录。使用通配符`...
在SQL Server 2005中,TOP关键字可以用来获取结果集的前n行,例如 `SELECT TOP 10 * FROM TableName`。 **排序查询**(Ordering)通过ORDER BY子句实现,决定结果集的显示顺序。例如,`SELECT * FROM TableName ...
《Microsoft SQL Server 2008技术内幕:T-SQL查询》全面深入地介绍了Microsoft SQL Server 2008中高级T-SQL查询、性能优化等方面的内容,以及SQL Server 2008新增加的一些特性。主要内容包括SQL的基础理论、查询优化...
### Sqlserver2008 学习笔记精要 #### 第一章 SQL Server 基础 ##### 1. T-SQL 语句基础 - **创建数据库**: 使用 `CREATE DATABASE` 语句来创建一个新的数据库。例如: ```sql CREATE DATABASE 新数据库名; ``...
在Select语句中可以使用多种子句来完成复杂的查询,如计算列、DISTINCT(消除重复记录)、BETWEEN(范围查询)、IN(值列表查询)、TOP(选取前N条记录)、ORDER BY(排序)、模糊查询、聚合函数(如SUM, COUNT等)...
在 SQL Server 数据库中,有一个表 StudentAchievement(学生成绩),它有三个字段:StudentID(varchar(8),学生编号),CourseID(varchar(10),课程编号),Achievement(int,成绩),写一条 SQL 语句,筛选出每...
标题“分组并排序取前N”涉及到数据库查询中的一个重要概念,这通常指的是在SQL查询中使用`GROUP BY`、`ORDER BY`以及`LIMIT`子句来对数据进行分组、排序,并提取出每组中排名靠前的N条记录。在数据库管理中,这种...
《Microsoft SQL Server 2008技术内幕:T-SQL查询》全面深入地介绍了Microsoft SQL Server 2008中高级T-SQL查询、性能优化等方面的内容,以及SQL Server 2008新增加的一些特性。主要内容包括SQL的基础理论、查询优化...
本书不但融合了作者在使用SQL Server 2000过程中遇到的各种常见问题和应用案例,还总结了作者几年来在CSDN 社区SQL Server版所解决的大量问题,面向实际项目需求,涉及不同类型的应用,能够多角度地引导读者学习相关...
该语句查询了 `emp` 表中的所有记录,并按工作分组,计算每个工作的平均薪资。 连接 在 SQL Server 中,可以使用 `JOIN` 语句来连接表,例如: ```sql SELECT * FROM emp e INNER JOIN dept d ON e.DEPTNO = d....
在SQL Server中,对表中的数据进行操作是数据库管理的核心任务。本章主要涵盖了如何在SQL Server管理控制台中执行这些基本操作,包括查询、插入、更新和删除数据。以下是对这些知识点的详细阐述: 首先,操作表中的...
结果将显示每个公司的`SqlServer2005`产品数量。 另外,如果数据库支持UNION ALL或者CASE语句,还可以通过多次聚合来达到类似的效果,但这通常不如Pivot操作简洁且高效。 在SQL Server 2005中,行转列的另一种常见...
2. 在关系型数据库中,表间关系包括一对一(1:1)、一对多(1:n)和多对多(m:n),没有二对二(2:2)关系,选项C。 3. `SELECT`语句用于从表中检索数据,A选项正确。其他选项(B更新、C插入、D删除)对应的是`...
2. **返回表中前n条记录**:使用`TOP`关键字可以获取表中的前n条记录,例如: ```sql select top 5 * from readCategory; ``` 3. **消除重复行**:`DISTINCT`关键字用于去除查询结果中的重复行: ```sql ...
根据提供的标题和描述,本文将详细介绍在MySQL、SQL Server以及Oracle数据库中常用的函数。这些函数主要分为几大类:字符串处理函数、数值处理函数、日期处理函数、转换函数以及其他一些特殊用途的函数。 ### 字符...
3. 主键(Primary Key):表中一个或一组列,用于唯一标识每一条记录。 4. 外键(Foreign Key):用于建立表与表之间的关联,确保数据的完整性。 二、SQL2008查询语句 1. SELECT语句:用于从表中检索数据,可以指定...