2016 - 2024

感恩一路有你

sql数据库 sql根据某一个字段重复只取第一条数据?

浏览量:2771 时间:2021-03-12 08:16:38 作者:admin

sql根据某一个字段重复只取第一条数据?

SQLServer,使用row_number配合开窗函数,取每条记录的第一条

SELECT*FROM(SELECTCOL1,COL2,ROW_NUMBER()OVER(PARTITIONBYCOL1,COL2ORDERBYCOL1,COL2)ASRNKFROMTABLE)AWHERERNK=1

sql根据某一个字段重复只取第一条数据?

使用分析函数row_number() over (partiion by ... order by ...)来进行分组编号,然后取分组标号值为1的记录即可。目前主流的数据库都有支持分析函数,很好用。

其中,partition by 是指定按哪些字段进行分组,这些字段值相同的记录将在一起编号;order by则是指定在同一组中进行编号时是按照怎样的顺序。

示例(SQL Server 2005或以上适用):

select s.* from ( select *, row_number() over (partition by [手机号] order by [店铺]) as group_idx from table_name) swhere s.group_idx = 1

SQL查询一表所有数据,有重复的按时间取第一条?

select distinct 名称, 状态, 时间 from 表 where 状态 = 1 order by 时间 desc 应该是楼主想要的~ 有重复的会按照时间取第一条~

oracle表中有很多相同的记录,怎么只取满足条件的第一条?

oracle只取满足条件的n条记录,和SQL server写法不一样,要使用关键字rownum。

如果只取1条记录:select 列名 from 表名 where rownum=1

如果想取前5条记录:select 列名 from 表名 where rownum>=5

sql数据库 sql取第一条和最后一条 sql查询第一条数据

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。