-
2021-05-01 09:36:07
对多数据进行分组排序后取每组第一条记录
SELECT *
FROM (SELECT ROW_NUMBER() OVER(PARTITION BY ORDER BY DESC) LEV,
.*
FROM )
WHERE LEV = 1
ORDER BY DESC
-- 分组列
-- 排序列
-- 表名
-- 排序列
注:.* -- 一定要有表名,否则会报“缺失表达式”错误
==========================================================
分组时不仅想取每组的第一条记录,还想取每组共有几条记录
SELECT *
FROM (
SELECT ROW_NUMBER() OVER(PARTITION BY PK_FINANCE_ACCOUNT ORDER BY amassdate DESC) LEV,
count(0) over(partition by PK_FINANCE_ACCOUNT) cnt,
hx_amass_liquid.*
FROM
hx_amass_liquid
)
WHERE LEV = 1
ORDER BY PK_FINANCE_ACCOUNT DESC
更多相关内容 -
Oracle结合Mybatis实现取表TOP 10条数据
2020-09-09 12:48:03主要介绍了Oracle结合Mybatis实现取表TOP 10条数据的相关资料,需要的朋友可以参考下 -
oracle 获取第一条数据
2021-05-03 02:21:54关于取第一条数据的sql特此作了一个例子如下:http://www.360doc.com/showweb/0/0/860281883.aspxSELECT*FROMtableNamewherefd_rt='A'--andrownum=1ORDERBYfd_dateDESC正常说 第一条数据应为 16bf4eb91606de5e0ff61f...关于取第一条数据的sql特此作了一个例子如下:
http://www.360doc.com/showweb/0/0/860281883.aspxSELECT * FROM tableName where fd_rt = 'A' --and rownum=1 ORDER BY fd_date DESC
正常说 第一条数据应为 16bf4eb91606de5e0ff61f94d0f8f20f
在where 后 直接跟条件 使用此sql时结果如下
SELECT * FROM tableName where fd_rt = 'A'
and rownum=1
ORDER BY fd_date DESC
可是查询结果为 第二条数据
郑州不孕不育医院:http://www.xbzztj.com/
正确使用方式为:SELECT t.* from(SELECT * FROM tableName where fd_rt = 'A' ORDER BY fd_date DESC) t WHERE rownum = 1
rownum作为伪列实际上查询结果为:SELECT tableName .*,rownum FROM tableName where fd_rt = 'A' --and rownum=1 ORDER BY fd_date DESC
SELECT t.*,rownum from(SELECT * FROM tableName where fd_rt = 'A' ORDER BY fd_date DESC) t
-
Oracle排序取第一条数据
2021-05-01 04:58:31Oracle需要更新套组的大单位, 规则是取第一个学员(套组ID最小)的单位...采用按照SUITEID排序取第一条方法。UPDATE sim_big_suite u SET u.org_code = (SELECT SUBSTR(x.pilot_unit,1,4) FROM(SELECT n.* FROM sim_...Oracle需要更新套组的大单位, 规则是取第一个学员(套组ID最小)的单位信息。
Oracle需要更新套组的大单位, 规则是取第一个学员(套组ID最小)的单位信息。
采用按照SUITEID排序取第一条方法。
UPDATE sim_big_suite u SET u.org_code = (
SELECT SUBSTR(x.pilot_unit,1,4) FROM(
SELECT n.* FROM sim_student_assign n WHERE
n.big_suite_no = 192 AND
--u.big_suite_no = n.big_suite_no AND
n.ac_type_code = 14
AND n.fixed_year = '2013上半年' AND n.train_com = 1001 AND n.position = 'L'
ORDER BY n.suite_id
)x WHERE ROWNUM = 1
)WHERE u.ac_type_code = 14 AND u.fixed_year = '2013上半年' AND u.train_com = 1001;
, 本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉 本文系统来源:php中文网
-
SQL获取第一条记录的方法(sqlserver、oracle、mysql数据库)
2020-09-10 06:20:44本文给大家收集整理些关于sql获取第一条记录的方法,包括sqlserver获取第一条记录,oracle获取第一条记录,mysql获取第一条记录,对sql获取第一条记录的方法感兴趣的朋友可以参考下本 -
Mysql和Oracle分组排序取第一条数据
2022-04-07 21:12:40根据name分组根据,根据age排序,取第一条数据 SELECT * FROM (SELECT p.*, row_number() over(PARTITION BY NAME ORDER BY age DESC ) rnk FROM person p)AS a WHERE rnk =1 AND a.name IN ('张三','鸡哥') ...根据name分组根据,根据age排序,取第一条数据
SELECT * FROM (SELECT p.*, row_number() over(PARTITION BY NAME ORDER BY age DESC ) rnk FROM person p)AS a WHERE rnk =1 AND a.name IN ('张三','鸡哥') SELECT a.name,MIN(a.age) FROM (SELECT p.`name`,p.`age` FROM person p ORDER BY p.`age` DESC) AS a WHERE a.name IN ('张三','鸡哥') GROUP BY a.name
源表数据
最终结果
-
oracle去除重复, 获取取最新的第一条数据
2021-05-03 05:42:19最近项目中的一条sql语句涉及到取一个表中相同工单编码中最新的一条数据,在网上看到一函数完美解决此问题,如下是内容要点:问题:在项目中有一张设备检测信息表DEVICE_INFO_TBL, 每个设备每天都会产生一条检测信息... -
oracle分组后取每组第一条数据
2021-05-04 01:00:08oracle 分组后取每组第一条数据‘数据格式 分组取第一条的效果 sql SELECT * FROM (SELECT ROW_NUMBER() OVER(PARTITION BY x ORDER BY y DESC) rn, test ...MSSQL 分组后取每组第一条(group by order by)查询中经常... -
oracle 数据库按照日期排序取第一条数据
2022-03-11 16:44:30oracle 数据库按照日期排序取第一条数据 select * from (select * from TABLE where STATUS= 3 order by TIME desc) where rownum=1; -
OVER(PARTITION BY)函数介绍 【oracle中按A分组按B排序,再取B中第一条数据的查询】
2021-05-05 02:29:51目录一、小案例:school表中有①id 序号②class 班级 ③score成绩 三个字段, 使用oracle实现按照班级分区,然后取班级中的第一名。1.1测试数据如下:--创建学校表schoolcreate table school(id varchar2(10) ... -
oracle数据库排序后获取第一条数据
2020-10-10 10:44:11想要获取下列sql的数据的第一条 select NEXT_FOLLOWUP_DATE from PH_CHILD_HEALTH_EXAM where person_info_id = '3afc119ab460497d85f59b1e135ea6b1' order by followup_Visit_Date desc 实现: select NEXT_... -
oracle 根据某个字段获取第一条数据
2021-07-09 10:13:41oracle 根据某个字段获取第一条数据 根据分组获取排序的第一条数据 select * from ( SELECT ROW_NUMBER()over(PARTITION by 分组字段 ORDER BY 排序字段 desc) as ro, xxx需要查询的字段 from 表名 ) dual where ... -
Oracle 查询出来的数据取第一条
2017-07-10 17:14:47select * from (select * from order by ) where rownum=1; select * from (select * from order by desc) where rownum=1; -
Oracle获取最后一条,第一条数据(按时间获取第一条和最后一条数据)
2018-09-06 15:57:33电表,大家都知道电表读数并不是真正的耗电量,真正耗电量=此次读数-上一次读数 电表设计如下: SQL语句如下,使用Oracle的FIRST_VALUE()和LAST_VALUE()函数实现: SELECT DISTINCT LAST_VALUE (E_VALUE) ... -
Oracle 分组排序后取第一条数据
2021-04-14 14:21:02select * from ( select t., row_number() over (partition by user_sid order by sid desc) rn ,count() over ...where user_sid in (select sid from sys_user where user_state = ‘LOCKED’) ) where rn=1 -
oracle和mysql分组排序取第一条数据
2018-12-28 13:34:38查每个人的Orderstr 是1 的数据,并保证name不重复 oracle select * from (SELECT a.*, row_number() over(partition by ida order by orderstr) rn FROM (select orderstr, name, ida from test) a ) where..... -
Oracle中查询第一条和最后一条数据
2019-06-14 11:58:481.Oracle中查询数据库表的第一条数据 SELECT * FROM (SELECT * FROM "user" ORDER BY "id") WHERE ROWNUM = 1 2.Oracle中查询数据库表的最后一条数据 SELECT * FROM (SELECT * FROM "user" ORDER BY "id" DESC)... -
oracle 取第一条数据
2013-09-06 17:45:27/* 分组排序取第一条数据*/ SELECT * FROM (SELECT ROW_NUMBER() OVER(PARTITION BY taskbreakid ORDER BY responsedate DESC) LEV, r.* -- select r.* FROM tablename r WHERE... -
oracle分组取每组第一条数据
2021-05-08 01:12:01Oracle 11g 单实例安装文档这里介绍在Red Hat Enterprise Linux ...一次千万级别的SQL查询简单优化体验背景:从两张有关联的表查询数据,A表数据量1400万,B表数据量8000万.A与B通过ID逻辑关联,没有实际的外键.B表... -
Oracle 分组排序取第一条数据
2020-09-08 17:08:49需求:先分组,再按时间排序,最后取分组第一条 利用oracle的开窗函数可以实现 以下是模板sql ,自行替换 select t.* from (select a.*, row_number() over(partition by 需要分组的字段 order by 更新时间 ... -
Oracle分组,取每个分组的第一条数据
2020-07-12 12:24:02最近有个有个业务需求(springboot项目集合mybatis):需要查询分组后,取每组的第一条数据(oracle数据库),可以在业务代码中实现,但是过于繁琐,后来查阅oracle的函数,得出仅仅在sql中即可实现,非常简洁,简化...