`
zhangyou1010
  • 浏览: 303324 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

oracle sql row_number 排序后分组处理

阅读更多
表结构:
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


分享到:
评论

相关推荐

    oracle row_number用法

    `ROW_NUMBER()`函数是Oracle数据库中一个非常强大的工具,特别是在需要对数据进行分组和排序时。通过掌握其基本用法以及与其他窗口函数的结合使用,可以在数据处理和分析方面发挥重要作用。无论是简单的排序还是复杂...

    oracle分析函数row_number() over()使用

    总之,`ROW_NUMBER() OVER()`是Oracle数据库中进行数据处理和分析的重要工具,它可以为数据提供有序的标识,便于进行排名、分组和筛选等操作,从而满足各种复杂的查询需求。在实际工作中,掌握这一功能能显著提升SQL...

    row_number,根据多个字段过滤,partition by

    为了实现上述需求,可以采用SQL中的`ROW_NUMBER()`窗口函数配合`PARTITION BY`子句来完成。下面详细介绍这一过程: #### 2.1 `ROW_NUMBER()`函数概述 `ROW_NUMBER()`函数用于为每个分区内的行分配一个唯一的数字。...

    深入探讨:oracle中row_number() over()分析函数用法

    总之,`row_number() over()`是Oracle数据库中一个强大的分析函数,能够帮助我们处理和组织数据,特别是在需要对大量数据进行排序和分组时。通过灵活运用`PARTITION BY`和`ORDER BY`子句,我们可以实现复杂的数据...

    oracle rownum 的使用 和sqlserver有区别的!

    - **ROW_NUMBER()** 可以基于特定的排序规则为每行分配一个连续的数字,这使得它在处理有序数据时更为灵活。 2. **ORDER BY 的影响:** - Oracle 中的 ROWNUM 不受 ORDER BY 影响,即无论是否使用 ORDER BY 子句...

    Oracle row_number() over()解析函数高效实现分页

    Oracle数据库中的`row_number() over()`函数是一种窗口函数,它在处理数据分页时非常有用。这个函数可以为查询结果集中的每一行分配一个唯一的行号,这些行号基于一个指定的排序规则。在此场景中,我们将探讨如何...

    oracle中rownum和row_number()

    row_number()over(partition by col1 order by col2)表示根据col1分组,在分组内部根据col2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)。 与rownum的区别在于:使用rownum进行排序的...

    Oracle开发之分析函数(Rank, Dense_rank, row_number)

    Oracle分析函数Rank、Dense_rank和row_number是用于处理数据集的高级工具,它们在数据库查询中发挥着关键作用,特别是在需要对数据进行排序和分组时。这三种函数都有各自的特点,适用于不同的业务场景。 1. **row_...

    Oracle数据库rownum和row_number的不同点

    `ROW_NUMBER()` 还允许在 `OVER` 子句中添加 `PARTITION BY` 子句,这使得我们可以为每个分区内的行独立编号,从而在分组后进行排序和分页操作。 总结一下 `ROWNUM` 和 `ROW_NUMBER()` 的主要区别: 1. `ROWNUM` ...

    Oracle_SQL_Reference

    - **窗口函数**:如ROW_NUMBER、RANK、DENSE_RANK等,用于处理分组或排序的数据。 - **条件表达式**:如CASE WHEN THEN ELSE END,用于根据条件返回不同的结果。 #### 四、Oracle SQL 特色功能 - **PL/SQL**:一种...

    oracle-plsql.zip_oracle_pl sql 分组查询_plsql_plsql 分组查询

    Oracle PL/SQL是一种强大的编程语言,它结合了SQL的数据库查询功能和PL/SQL的结构化编程特性,广泛用于Oracle数据库管理系统中。本压缩包文件包含的“数据库培训教程.pdf”可能涵盖了以下多个核心知识点: 1. **...

    使用row_number()实现分页实例

    在SQL Server中,`ROW_NUMBER()`函数是窗口函数的一种,它在每个分组或分区中生成一个唯一的递增数字。`OVER()`子句定义了分组或分区的逻辑,`ORDER BY`子句则决定了行号的生成顺序。由于`ORDER BY`不能直接放在`...

    MYSQL获取行号row_no

    在数据库操作中,有时候我们需要为查询结果集中的每一行添加一个行号(或行序号),类似于Oracle中的`ROW_NUMBER()`功能。然而MySQL并未直接提供与Oracle完全相同的功能,因此我们需要通过其他方式来实现这一需求。...

    SQL为查询的结果加上序号(ROW_NUMBER) 合并多个查询结果

    如果使用Select Name From StudentTable,显示的结果是: Name 张三 李四 而如果使用Select ROW_NUMBER() AS ROWINDEX,Name From StudentTable,则显示的结果是 ROWINDEX Name 1 张三 2 李四 当然一般查询的结果是...

    Oracle_SQL_Developer_使用教程

    ### Oracle SQL Developer 使用教程知识点详解 #### 一、创建数据库连接 在使用Oracle SQL Developer进行数据库管理工作之前,首先需要建立与目标数据库的连接。以下是创建数据库连接的具体步骤: 1. **启动Oracle...

    oracle分组排序统计高级用法

    在Oracle数据库中,实现分组排序和统计是一项常见的需求,主要用于处理大量的数据,并从中提取有价值的信息。通过合理运用SQL语句,特别是`GROUP BY`、`ORDER BY`以及分析函数等,可以有效地对数据进行分组、排序、...

Global site tag (gtag.js) - Google Analytics