`

sql分组并提取每组的前一条,按照时间排序

 
阅读更多
select * from 
(
    select     row_number() over(partition by '分组' order by '日期') as rownum    -- 排序并分组
                    , *         -- 所需显示的字段
    from 表
) as T
where T.rownum = 1

对每组的数据按日期排序并加上行号
取出时只取行号为1,也就是第一条数据。
             这种方法,能同时一次对两个字段分组波,即两个字段内容相同为一组
可以的
逗号分开

select * from
(
select     row_number() over(partition by 'Gr1',‘Gr2’[, ...]
                                             order by 'Sort1', 'Sort2'[, ...]) as rownum    -- 排序并分组
, *         -- 所需显示的字段
from 表
) as T
where T.rownum = 1
 
我的意思是两字段唯一标示一条记录,不是在分组中分组
 
不是很明白你的意思
但是这不是分组中分组。。
这个只分组了一次,给每组的数据都加上rownum,再选取每组中的第一条
C1    C2    C3
1        A        2012
2        A        2013
1        B        2012
2        B        2013
...
C1是rownum, C2是分组条件,C3是排序条件
只选取C1 = 1 的
分享到:
评论

相关推荐

    分组并排序取前N

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

    SQL语句分组获取记录的第一条数据的方法

    在SQL中,有时候我们需要在对数据进行分组后,从每个组中获取第一条或特定的数据。这在处理聚合数据或需要展示每个类别代表性的记录时非常有用。本篇将详细介绍如何利用SQL语句来实现这一目标,以Northwind数据库中...

    SQL随机提取N条记录

    在SQL(Structured Query Language)中,随机提取数据是一项常见的需求,尤其在数据分析、测试或样例展示时。这里我们将深入探讨如何在SQL中实现这一功能,以满足“SQL随机抽取N条记录”的需求。 首先,我们需要...

    SQL SERVER 分组求和sql语句

    `SUM`函数在这里用于对每组内的`A2`和`A3`乘积求总和。 3. `FROM A`: 指定我们要查询的数据源,即`A`表。 4. `GROUP BY A1`: 这个语句告诉SQL Server按照`A1`列的值对数据进行分组。这意味着结果集将包含每个不同`A1...

    SQL分组排序去重复的小实例

    然后,外层的查询通过`WHERE row_bank = 1`只选择了每个分组内行号为1的记录,也就是每个`userid-classid`组合下的最新一条记录,从而实现了去重并保留每个组合的最新状态。 这个实例在实际应用中非常有用,例如在...

    SQL语法中文大全、SQL语句学习

    每个表包含多个字段(列),每行代表一条记录。例如,一个简单的联系人表可能包含`Name`和`EmailAddress`两个字段,每一行则是一条完整的联系人记录。 2. **基于条件的数据检索**:SQL不允许按照特定顺序读取记录,...

    以数据库字段分组显示数据的sql语句(详细介绍)

    在SQL Server中,`OVER`和`PARTITION BY`可以用来在分组内进行排序和计算,而`ROW_NUMBER()`函数则可以为每个分组内的行分配唯一的序列号,这对于获取每个组的第一条或最后一条记录非常有用。 总的来说,分组是SQL...

    sql高级进阶

    - 确定当前记录和下一条记录之间相差的天数:使用数据库的日期差函数。 8. 日期操作 - SYSDATE能得到的信息:解释SYSDATE函数返回的当前系统日期和时间。 - 确定一年是否为闰年:使用数据库提供的函数或逻辑判断...

    详解mysql 获取某个时间段每一天、每一个小时的统计数据

    4. `GROUP BY triggerDay`:按格式化后的日期`triggerDay`进行分组,这样每组就代表了一天的数据。 5. `ORDER BY trigger_time`:最后,按照时间顺序排序结果。 如果需要获取某一天内每个小时的统计数据,可以使用...

    sql语句强化练习习题及答案

    - 使用`GROUP BY`对数据进行分组,结合`AVG()`函数计算每组的平均值。 **知识点12:多列分组查询** - **SQL语句**: `SELECT 课号, AVG(成绩) AS 平均成绩, MAX(成绩) AS 最高分, MIN(成绩) AS 最低分, COUNT(学号)...

    SQL查询语句实用大全(适合SQL的初学者以及经常写SQL的人)

    **汇总查询**是指对结果集进行分组,并在每个组上应用聚合函数。 - **语法**: ```sql SELECT <列名>, COUNT(<列名>) FROM <表名> GROUP BY <列名>; ``` - 示例:统计`[tusersex]`表中每个性别的人数。 ```...

    SQL操作符和函数

    - **表**:包含数据的记录(行),每一行代表一个实体,每一列代表实体的一个属性。 - **例子**:“Persons”表包含以下列:`Id`, `LastName`, `FirstName`, `Address`, `City`。 ##### 2. SQL语句 - **基本语法**...

    MYSQL每隔10分钟进行分组统计的实现方法

    例如,如果有一个时间戳字段`time_str`记录了每条记录的产生时间,我们可以通过以下SQL语句按照每10分钟为一个时间单位进行统计: ```sql SELECT ROUND(UNIX_TIMESTAMP(time_str)/(10*60)) AS time_key, COUNT(*)...

    数据库sqlserver攻关

    ### 根据id由小到大排列,自动把jilu中为null的值补为上一条记录的值结果为,求用sql怎么实现 这是一个需要使用SQL Server的窗口函数(如LAG)来实现的功能,通过在SELECT语句中应用窗口函数,可以访问当前行的前一...

    SQL数据库常用语言

    例如,一个包含姓名和电子邮件地址的简单表由多行数据组成,每行数据是一条记录。 2. 使用SELECT语句: - 从表中获取数据:SQL的基础操作之一是SELECT语句,用于从表中提取所需的信息。你可以指定字段、过滤条件...

    SQLServer2005高级查询

    在SQL Server 2005中,高级查询技术是数据库管理员和开发人员必备的技能,它们可以帮助用户更高效地从大型数据集中提取信息。本教程将深入探讨SQL Server 2005中的高级查询概念、技术和最佳实践。 一、联接操作 1. ...

    SQL 查询语句、纯文本格式(有小例)

    此语句将返回每条记录中的学时加上 1 的结果,并命名为“新学时”。 4. **去重**:通过 `DISTINCT` 关键字可以去除查询结果中的重复记录。 - 示例: ```sql SELECT DISTINCT 专业, 班级 FROM xsqk; ``` 这条...

    织梦sql标签模糊查询+sql标签分页

    除了基础的模糊查询和分页,还可以利用SQL标签实现更多高级功能,比如按时间排序、条件组合查询等,为网站提供更多定制化的信息展示方式。 总之,理解和熟练运用织梦CMS的SQL标签及模糊查询、分页功能,能极大地...

    SQLServer2005函数大全

    - `@@ROWCOUNT`:返回最后一条SQL语句影响的行数。 - `@@IDENTITY`:返回最后一个自动增长的标识值。 - `DATABASE()`:返回当前数据库名。 - `SERVERPROPERTY()`:获取服务器级别的属性信息。 7. **排名函数**...

    ASP实例开发源码-数据合并排序提取批量查询实用小工具.zip

    ASP可以构建参数化的SQL语句,一次性获取多条记录。例如,使用IN操作符来处理一组ID,或通过BETWEEN操作符来查询一定范围的数据。 5. 实用小工具:这个压缩包中的"132684363314485811"可能是一个实用工具的文件,...

Global site tag (gtag.js) - Google Analytics