表结构:
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()`函数是Oracle数据库中一个非常强大的工具,特别是在需要对数据进行分组和排序时。通过掌握其基本用法以及与其他窗口函数的结合使用,可以在数据处理和分析方面发挥重要作用。无论是简单的排序还是复杂...
总之,`ROW_NUMBER() OVER()`是Oracle数据库中进行数据处理和分析的重要工具,它可以为数据提供有序的标识,便于进行排名、分组和筛选等操作,从而满足各种复杂的查询需求。在实际工作中,掌握这一功能能显著提升SQL...
为了实现上述需求,可以采用SQL中的`ROW_NUMBER()`窗口函数配合`PARTITION BY`子句来完成。下面详细介绍这一过程: #### 2.1 `ROW_NUMBER()`函数概述 `ROW_NUMBER()`函数用于为每个分区内的行分配一个唯一的数字。...
总之,`row_number() over()`是Oracle数据库中一个强大的分析函数,能够帮助我们处理和组织数据,特别是在需要对大量数据进行排序和分组时。通过灵活运用`PARTITION BY`和`ORDER BY`子句,我们可以实现复杂的数据...
- **ROW_NUMBER()** 可以基于特定的排序规则为每行分配一个连续的数字,这使得它在处理有序数据时更为灵活。 2. **ORDER BY 的影响:** - Oracle 中的 ROWNUM 不受 ORDER BY 影响,即无论是否使用 ORDER BY 子句...
Oracle数据库中的`row_number() over()`函数是一种窗口函数,它在处理数据分页时非常有用。这个函数可以为查询结果集中的每一行分配一个唯一的行号,这些行号基于一个指定的排序规则。在此场景中,我们将探讨如何...
row_number()over(partition by col1 order by col2)表示根据col1分组,在分组内部根据col2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)。 与rownum的区别在于:使用rownum进行排序的...
Oracle分析函数Rank、Dense_rank和row_number是用于处理数据集的高级工具,它们在数据库查询中发挥着关键作用,特别是在需要对数据进行排序和分组时。这三种函数都有各自的特点,适用于不同的业务场景。 1. **row_...
`ROW_NUMBER()` 还允许在 `OVER` 子句中添加 `PARTITION BY` 子句,这使得我们可以为每个分区内的行独立编号,从而在分组后进行排序和分页操作。 总结一下 `ROWNUM` 和 `ROW_NUMBER()` 的主要区别: 1. `ROWNUM` ...
- **窗口函数**:如ROW_NUMBER、RANK、DENSE_RANK等,用于处理分组或排序的数据。 - **条件表达式**:如CASE WHEN THEN ELSE END,用于根据条件返回不同的结果。 #### 四、Oracle SQL 特色功能 - **PL/SQL**:一种...
Oracle PL/SQL是一种强大的编程语言,它结合了SQL的数据库查询功能和PL/SQL的结构化编程特性,广泛用于Oracle数据库管理系统中。本压缩包文件包含的“数据库培训教程.pdf”可能涵盖了以下多个核心知识点: 1. **...
在SQL Server中,`ROW_NUMBER()`函数是窗口函数的一种,它在每个分组或分区中生成一个唯一的递增数字。`OVER()`子句定义了分组或分区的逻辑,`ORDER BY`子句则决定了行号的生成顺序。由于`ORDER BY`不能直接放在`...
在数据库操作中,有时候我们需要为查询结果集中的每一行添加一个行号(或行序号),类似于Oracle中的`ROW_NUMBER()`功能。然而MySQL并未直接提供与Oracle完全相同的功能,因此我们需要通过其他方式来实现这一需求。...
如果使用Select Name From StudentTable,显示的结果是: Name 张三 李四 而如果使用Select ROW_NUMBER() AS ROWINDEX,Name From StudentTable,则显示的结果是 ROWINDEX Name 1 张三 2 李四 当然一般查询的结果是...
### Oracle SQL Developer 使用教程知识点详解 #### 一、创建数据库连接 在使用Oracle SQL Developer进行数据库管理工作之前,首先需要建立与目标数据库的连接。以下是创建数据库连接的具体步骤: 1. **启动Oracle...
在Oracle数据库中,实现分组排序和统计是一项常见的需求,主要用于处理大量的数据,并从中提取有价值的信息。通过合理运用SQL语句,特别是`GROUP BY`、`ORDER BY`以及分析函数等,可以有效地对数据进行分组、排序、...