表结构:
create table post(group_id number , ctime date);
数据:
GROUP_ID CTIME
1 2641 2010-10-11 上午 11:33:41
2 2644 2010-10-11 上午 11:31:38
3 2641 2010-10-11 上午 11:25:29
4 2921 2010-8-27 下午 04:00:33
5 2921 2010-8-27 下午 03:19:10
6 2721 2010-7-30 下午 04:36:08
7 2721 2010-7-30 下午 04:35:53
8 2821 2010-7-30 下午 04:20:40
9 2644 2010-7-30 下午 04:17:24
10 2721 2010-6-22 下午 03:42:38
11 5721 2010-6-22 下午 01:59:41
12 3721 2010-6-17 下午 01:26:40
13 1721 2010-6-17 下午 01:02:42
14 6721 2010-6-17 下午 01:02:37
15 2721 2010-6-17 下午 01:02:30
16 2721 2010-6-17 下午 01:00:39
17 2721 2010-6-17 下午 01:00:24
18 2721 2010-6-17 下午 12:59:28
19 2721 2010-6-17 下午 12:59:22
20 2721 2010-6-17 下午 12:59:14
要根据ctime排倒序,求group_id排前10的数据,group_id不能有重复的,也就是说,第一条
数据和第三条数据的group_id相同,但只要取第一条,时间在前面的那条,用普通的排序,分
组,去重复没有解决,用分析函数解决了.
select *
from (select t.group_id, t.ctime
from (select group_id,
ctime,
row_number() over(partition by group_id order by ctime desc) aaa
from MOKA_GROUP_POST) t
where t.aaa = 1
order by ctime desc) b
where rownum < 11
分享到:
相关推荐
row_number()over(partition by col1 order by col2)表示根据col1分组,在分组内部根据col2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)。 与rownum的区别在于:使用rownum进行排序的...
在Oracle中,有一个很有趣的东西,那就是rownum。当你从某个表中查询数据的时候,返回的结果集中都会带有rownum这个字段,而且有时候也可以使用rownum进行一些条件查询
行列转换,sys_connect_by_path,row_number等函数的用法
总结三种排序方式的共同点和不同点,已经排除空值后排序的oracle语句用法
sql 排序:row_number() over(partition by sjjl_id order by fksj desc,最优化的情况,里面放的有例子,大家可以参考
作者通过总结各自多年的软件开发和教学培训经验,与大家分享了掌握Oracle SQL所独有的丰富功能的技巧所在,内容涵盖SQL执行、联结、集合、分析函数、子句、事务处理等多个方面。读者可以学习到以下几个方面的技巧:...
在前面一篇《Oracle开发之分析函数简介Over》,我们认识了分析函数的基本应用,现在我们再来考虑下面几个问题: ①对所有客户按订单总额进行排名 ②按区域和客户订单总额进行排名 ③找出订单总额排名前13位的客户 ④...
因为Oracle出于通用性的琢磨,其函数及数学计算的速度远不及用C语言直接编译成机器码后计算来的快。 绑定变量 这个能够大幅度减退SQL的“hard parse”,我们大局部过程都曾经告终了变量绑定。个别
mysql代码-查询每天前三条数据 按照交易价格大到小排序 相当于模拟Oracle Row_Number() OVER (partition by date ORDER BY pay desc)
在MySQL中,我们通常都使用limit来完成数据集获取的分页操作,而在Oracle数据库中,并没有类似limit一样的方便方法来实现分页,因此我们通常都是直接在SQL语句中完成分页,这里就需要借助于rownum伪列或row_number()...
由于在System表空间中已经记录了新的信息, 因此用当前的System信息是不能恢复过来的,在AUL/MyDUL中可以当作没有System时的情况来处理,在下面的命令中, 我们用Truncate后的数据对象号就不能进行恢复, 而使用Truncate...
sql> create user juncky identified by oracle default tablespace users sql> temporary tablespace temp quota 10m on data password expire sql> [account lock|unlock] [profile profilename|default]; ...
程序同步到执行结束时的目标表所有数据,不按任何字段排序,只判断并记录row_number()到日志表,中断后重新执行可继续同步,如果目标表频繁读写,不保证数据完全正常,故最好是目标表不变动情况下执行同步。...
5.2.9 备用激活后的四项工作 5.2.10 将归档重做日志自动传送到备用 数据库 5.2.11 启动管理恢复 5.2.12 只读打开备用数据库 5.2.13 热备用数据库的维护 5.3 回顾 第6章 高级的失败切换方法 6.1 将 Oracle ...
(3) 学会使用高级SQL命令,排序、分组、自连接查询等。 (4) 学会使用SQL*PLUS命令显示报表,存储到文件等。 【实验内容】 一、 准备使用SQL*PLUS 1. 进入SQL*PLUS 2. 退出SQL*PLUS 3. 显示表结构命令DESCRIBE SQL>...
MySQL 几乎模拟了 Oracle,SQL Server等商业数据库的大部分功能,函数。但很可惜,到目前的版本(5.1.33)为止,仍没有实现ROWNUM这个功能
using sql_id along with child number instead of hash value # ora webplan aca4xvmz0rzup/3 1 - hash_to_sqlid <sql_id> : get the sql_id of the cursor given its hash value - sqlid_to_hash <sql_id>: ...