首页 > 数据库 >Sql:多行合并一行以及多条数据取时间最早的那条

Sql:多行合并一行以及多条数据取时间最早的那条

时间:2022-09-19 20:44:05浏览次数:107  
标签:多行 XML over partition 多条 OrderNum 分组 Sql WHERE

有两个导数据的需求,
1、一张表里面每一个订单号可能对应多条数据,每个单号返回时间最早的那条。

2、根据条件查询某个字段并按照逗号,合并在一起。

表类似结构如下:

 

 

第一条sql:
select c.Id,c.OrderNum, c.CreateTime FROM (select t.*,row_number() over(partition by t.OrderNum order by t.CreateTime ) rn  from Payinfo t WHERE t.OrderNum IN('20160906025229','20160905006031','20160905016570')) c WHERE rn = 1;

执行效果如下:

 

 

主要知识点:over partition by
over partition  by关键字是分析性函数的一部分,它和聚合函数不同的地方在于它能返回一个分组中的多条记录,常用于给结果集分组,如果没有指定那么它把整个结果集作为一个分组 。

Group by 与 over partition by都可以实现分组统计功能.

Group by 根据一列或者多列的值或表达式将选定的行进行一个摘要分组,每一个分组只返回一行。

 

第二条sql:


SELECT TOP 1  data=STUFF((SELECT ','+ CAST(id AS VARCHAR(10))  FROM Payinfo t WHERE OrderNum IN('20160906025229','20160905006031')  FOR XML PATH('')), 1, 1, '')
FROM Payinfo t1

执行效果如下:

 

 

主要知识点:FOR XML PATH
将查询结果集以XML形式展现,有了它我们可以简化我们的查询语句实现一些以前可能需要借助函数活存储过程来完成的工作。

转载自:https://www.cnblogs.com/1024zy/p/6020874.html

标签:多行,XML,over,partition,多条,OrderNum,分组,Sql,WHERE
From: https://www.cnblogs.com/xiaopanglian/p/16708986.html

相关文章

  • 【Mysql】主从同步原理
    mysql主从同步过程:mysql的主从复制主要有三个线程:master:二进制日志转储线程(binlogdumpthread)、slave:I/O线程(I/Othread)和SQL线程(SQLthread).master一条线程和slave......
  • mysql的单路排序和双路排序
    单路排序:查询数据时,将所有要查询的数据全部加载到内存中进行排序。双路排序:查询数据时,只是将排序字段和记录ID加载到内存中,排好序后在根据id回表加载数据。单路排序占......
  • MySQL-存储引擎
    存储引擎本章包含MySQL的体系结构、存储引擎介绍、存储引擎特点、存储引擎的选择!使用的MySQL8.0版本。MySQL的体系结构MySQL服务的体系结构图:MySQL服务各层的功......
  • mysql(6)约束
    约束是作用于表中字段上的规则,用于限制存储在表中的数据,以保证数据库中数据的正确、有效性和完整性。 约束分类    外键约束具有外键的表为子表,外键关联的表......
  • Sql技巧
    行转列,表1:源数据,表2:转换后的数据  selectName,sum(caseSubjectwhen'语文'thenScoreelse0end)as'语文',sum(caseSubjectwhen'数学'thenScoreel......
  • mysql初步自学
    mysql是目前最常用的一项数据库,所谓的mysql实际上是数据库管理系统(JBMS),数据库使用sql语句实现对数据库的操作,实际上目前的数据库无论是mysql还是oracle都是采用的sql语句去......
  • 【Mysql】什么是MVCC
    多版本并发控制:读取数据时通过一种类似快照的方式将数据保存下来,这样读锁就和写锁不冲突了,不同事务会话看到自己特定版本的数据,使用版本链。MVCC只在READCOMMITTED和RE......
  • MySQL进阶
    【转】Mysql进阶学习Ⅰ,索引优化入门之前学习的数据库知识,主要是对表的增删改查(CRUD),并没有考虑对数据库做出优化,这章内容就是学习怎么优化数据库。为什么要优化数据库?当......
  • Postgresql索引介绍
    参考地址:PostgreSQL9种索引的原理和应用场景-阿里云开发者社区(aliyun.com)1、btreeb-tree适合所有的数据类型,支持排序,支持大于、小于、等于、大于或等于、小于或等于......
  • mysql5.7+版本,date类型设置默认值0000-00-00 报错
    在本地建表,发现无法给date类型设置默认值为0000-00-00,报错:  在mysql命令行输入:SELECT@@SQL_MODE,可以看到值为:ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZER......