`
Shabrave
  • 浏览: 17495 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Oracle中Order By与序列以及Group by和取结果集行数并用

阅读更多
今天碰到一个很奇怪的问题,Oracle中Order By与序列同时用报错,情况是这样的。
1、这样直接一起用报错:
   SELECT W_T_SEQ.Nextval,
                 IP.ROW_NO,
                 IP.NUMBER
   FROM IMP_T IP
    WHERE NUMBER = '80112'
    ORDER BY IP.ROW_NO

当时不明白为什么,后来查看了下资料,修改了下代码,结果通过了,感觉很有趣的一个问题,修改后的代码如下:

2、使用嵌套查询:
SELECT W_T_SEQ.NEXTVAL,
       NUMBER,
       ROW_NO
FROM (SELECT NUMBER,
             ROW_NO
      FROM IMP_T IP
      WHERE IP.NUMBER = '80112'
      ORDER BY IP.ROW_NO)

3、group by,order by 和rownum并用实例:
    select name
     from (
      select name,min(row_no)
        from table_name
       where id = '123456'
       group by name
       having count(1) > 1
       roder by row_no)
      where rownum = 1
      

呵呵,总结下,以免忘记,如果有童鞋碰到一样的问题时,也可以参考!
分享到:
评论

相关推荐

    oracle分析函数参考手册

    通过`OVER (ORDER BY t.calendar_month_number)`子句,我们可以得到一个累积的相关系数序列,反映了随着时间推移销售趋势的变化情况。 #### 四、开窗函数的深入理解 **开窗函数**(也称为窗口函数)是指定了分析...

    oracle实例,Oracle_常用命令集,常用的语法

    - `SELECT`:用于查询数据,是SQL语言中最基本的命令,可以结合`FROM`, `WHERE`, `GROUP BY`, `ORDER BY`等子句实现复杂的数据筛选和排序。 - `INSERT`:用于向表中插入新数据。 - `UPDATE`:用于更新已有记录。 ...

    Oracle入门很简单源代码集

    - 熟悉SQL查询语句(SELECT),包括单表查询、多表连接查询、聚合函数(COUNT、SUM、AVG等)、分组(GROUP BY)和排序(ORDER BY)。 3. **PL/SQL编程**: - 学习PL/SQL块的结构,包括声明部分、执行部分和异常...

    Oracle官方文档CHM合集-SQL参考手册

    通过WHERE子句进行条件过滤,ORDER BY子句进行排序,GROUP BY和HAVING子句用于分组和过滤聚合结果。 3. **DML操作**:插入(INSERT)、更新(UPDATE)和删除(DELETE)是SQL中的数据操纵语言,用于对数据库中的数据...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    4.3.3 空值与GROUP BY和ORDER BY 112 4.3.4 空值与聚合函数 114 4.4 小结 114 第5章 关于问题 116 5.1 问出好的问题 116 5.2 提问的目的 117 5.3 问题的种类 117 5.4 关于问题的问题 119 5.5 关于数据的问题...

    Oracle与MySQL的几点区别.pdf

    例如,`SELECT name, COUNT(money) FROM user` 在 MySQL 中有效,但在 Oracle 中则需要 GROUP BY name,因为 name 需要遵循分组规则。 2. **自动增长的数据类型处理**: MySQL 提供了 AUTO_INCREMENT 数据类型,...

    Oracle SQL 测试题目

    Oracle SQL 是一种强大的数据库查询语言,广泛用于管理和处理Oracle数据库中的数据。以下是对给定测试题目中涉及的一些关键知识点的详细解释: 1. 统计每个部门员工的数目: 使用 `SELECT` 语句配合 `COUNT(*)` ...

    Oracle实验3:视图、序列、同义词和索引.docx

    在Oracle数据库管理中,实验3涉及到了几个关键的数据库对象:视图、序列、同义词和索引。这些元素是构建和管理高效数据库系统的重要组成部分。以下是它们的详细解释和示例: 1. **视图(View)**: 视图是从一个或...

    Oracle与MYSQL的几点区别

    - Oracle也支持类似的分组查询,但其对聚合函数的支持更为灵活,例如可以结合`HAVING`子句进一步筛选结果集。 - 示例:`SELECT name, COUNT(money) FROM user GROUP BY name HAVING COUNT(money) > 10;` #### 2. ...

    Oracle数据库按时间进行分组统计数据的方法

    Oracle数据库提供了一种强大的数据分组和统计功能,这在处理时间序列数据时尤其有用。在本示例中,我们关注的是如何利用SQL查询按时间进行分组统计数据。以下将详细介绍几种常见的分组方法及其应用。 1. **按年份...

    Oracle计算连续天数,计算连续时间,Oracle连续天数统计

    在Oracle数据库中,计算连续天数或连续时间是一项常见的需求,尤其在数据分析、报表生成或者业务规则检查等场景。这个任务通常涉及到日期处理和逻辑判断,Oracle提供了丰富的日期函数和运算符来支持这类操作。本篇...

    mysql和oracle区别.pdf

    - 在 MySQL 中,组函数(如 COUNT、SUM 等)可以在 SELECT 语句中自由使用,而不需要考虑是否与 GROUP BY 子句关联。然而,在 Oracle 中,如果 SELECT 语句包含组函数,那么未聚合的列要么必须在 GROUP BY 子句中,...

    Oracle入门学习文档toad

    此章将深入讲解SQL查询语言,包括SELECT语句的使用、聚合函数(如COUNT, SUM, AVG, MAX, MIN)、分组(GROUP BY)和排序(ORDER BY)操作,以及如何使用WHERE子句进行条件筛选。 第3章:数据操作 本章主要涉及...

    数据库开发 Oracle数据库 SQL开发教程 第16章 序列、索引、同义词(共34页).pdf

    序列可以用于INSERT和UPDATE语句中,但有一些限制,比如不能在视图的SELECT列表或含有GROUP BY、HAVING、ORDER BY子句的SELECT语句中直接使用它们。 **索引(INDEX)**是提高查询性能的关键工具,它提供了快速访问...

    oracle系统表查询

    在Oracle数据库管理中,系统表查询是深入了解数据库结构与状态的关键技术之一。通过查询特定的系统表,数据库管理员(DBA)或开发人员能够获取关于用户、表空间、数据库对象、表、索引、序列、视图、聚簇以及快照的...

    Oracle与MySQL的几点区别.docx

    - 在 MySQL 中,组函数(如 COUNT、SUM 等)可以在 SELECT 语句中与非聚合列一起使用,但 Oracle 要求如果使用了组函数,其他列要么也使用组函数处理,要么出现在 GROUP BY 子句中。例如,`SELECT name, COUNT...

    Oracle-SQL.zip_oracle_practice

    例如,WHERE用于过滤结果集,GROUP BY用于数据分组,HAVING则是在分组后进行条件筛选,ORDER BY则负责排序。 在更高级的应用中,会涉及到联接(JOIN)操作,包括内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接...

    oracle分析函数的使用

    分析函数的工作顺序位于`JOIN`、`WHERE`子句、`GROUP BY`和`HAVING`之后,但在主查询的`ORDER BY`子句之前。因此,分析函数只能出现在`SELECT`列表和主查询的`ORDER BY`子句中。 2. `ROW_NUMBER()`函数可以为每个...

    ORACLE常用的SQL语法和数据对象 CHM

    你可以根据需要选择一个或多个列,并可以使用WHERE子句过滤结果,ORDER BY子句排序,GROUP BY和HAVING子句进行分组和聚合操作。 2. **INSERT语句**:用于向表中插入新记录。你需要指定表名和要插入的列及对应的值。...

Global site tag (gtag.js) - Google Analytics