`

oracle去重取最大值

阅读更多

做一个查询需要提取每个人去重复之后最新的记录,刚开始用分组排序等方法觉得不行,

distinct可以去掉重复的值,但我还需要拿到这个表的主键id,这样distinct就不支持了。distinct语句中select显示的字段只能是distinct指定的字段,其他字段是不可能出现的。

后来用max函数取最大id就可以实现了,下面是例子:

select *
  from mdc_hypertensionvisit
 where visitId in
       (select max(visitId)
          from mdc_hypertensionvisit
         where visitdate between to_date('2014-02-01', 'yyyy-MM-dd') and
               to_date('2014-10-01', 'yyyy-MM-dd')
         group by empiId)

 

 

 

 

分享到:
评论

相关推荐

    oracle本表去重的语句优化

    在Oracle数据库中,进行表内数据去重是一项常见的任务,特别是在处理大量数据时。面对一个包含一亿条记录,且每个记录只有一个字段`mobile`的`bao_mobile_temp`表,如何高效地去除重复数据,是本文要探讨的核心问题...

    oracle删除重复数据的sql语句

    这条语句返回的是那些出现次数大于1次的num值及其对应的最大的name值。 #### 删除重复数据 ```sql DELETE FROM student GROUP BY num HAVING COUNT(num) > 1 ``` 该语句虽然语法上看起来合理,但实际上Oracle不允许...

    sql_按照某一个字段进行去重后获取全部字段

    - **DISTINCT 关键字**:最简单的去重方法之一,用于返回唯一不同的值。 - **GROUP BY 语句**:与聚合函数(如 COUNT, SUM, AVG 等)结合使用,可以对分组后的数据进行统计分析。 - **窗口函数**:如 ROW_NUMBER(), ...

    oracle中将列拼接字段函数

    - 当拼接的字段数量较多时,生成的结果可能会超出Oracle单个字段的最大长度限制(通常是4000字符),这时需要使用其他方法进行处理。 ### 实际应用案例 假设我们有一个名为`fin_cbs_manager`的表,其中包含`...

    Oracle查询重复数据与删除重复记录方法

    这个查询返回了每个`num`值出现的次数以及对应的`name`最大值。通过`HAVING COUNT(num) > 1`来过滤出重复记录。 ##### 3. 使用DISTINCT方法 **查询重复数据示例** 对于较小的表,可以使用`DISTINCT`方法来快速找...

    Oracle1.pdf

    而排序操作则使用`ORDER BY`语句,可以对一个或多个字段进行升序或降序排列,注意在Oracle中,`NULL`值被视为最大值,所以在排序时需特别注意。 条件判断是SQL查询的关键部分,包括等值判断(如`=`, `!=`)、一般...

    SQL Oracle 语句操作总结

    4. **聚合函数**:COUNT、SUM、AVG、MAX和MIN等聚合函数用于对一组值进行计算,例如计算总数、平均值、最大值和最小值。 5. **时间处理**: - 使用DATE数据类型存储日期和时间。 - TO_DATE和TO_CHAR函数进行日期...

    oracle常用命令_笔记

    - `SET LINESIZE 100`调整输出行的最大宽度为100字符。 - `SET PAGESIZE 30`设置每页显示的记录数为30条。 4. **字段别名**: - 使用`AS`关键字为字段设置别名,如`SELECT column AS alias FROM table`。 5. **...

    Oracle超详细学习笔记

    以上内容总结了Oracle中基本查询的相关知识点,包括最简单的查询、特定列的选择、直接量和算术表达式的使用、列别名、字符串链接、去重查询以及使用 `WHERE` 子句进行复杂条件过滤的方法。这些知识点对于初学者来说...

    常用的Oracle SQL 语句

    在处理数据时,我们经常需要删除表中的重复行,但保留其中某些列具有最大值的行。下面的语句利用子查询和`NOT IN`操作符,删除了满足一定条件的重复行: ```sql DELETE FROM 'table' WHERE (a, b, c) NOT IN ( ...

    Oracle查询操作的学习笔记

    - **日期时间类型**:Oracle使用`DATE`类型来存储日期时间值。可以使用标准的日期函数来进行日期计算。 #### 三、表的基本操作 - **查看表结构**:使用`DESCRIBE`或简写为`DESC`命令可以查看表的结构信息,例如`...

    Oracle 12c OCP认证IZO-61模拟题

    - 子查询的使用场景:如比较某个值与子查询的结果集中的最大值或最小值等。 ### 8. 使用集合运算符 (Chapter09) 集合运算符用于组合两个或多个查询的结果集。这部分内容可能包括: - `UNION`:合并两个查询的结果...

    Oracle经典练习题及标准答案

    - 使用`max`函数来获取最大值。 - 通过`where`子句限定查询范围。 ### 15. 子查询与主查询结合:使用子查询与主查询相结合的方式 - **题目示例**:算出部门30中得到最多奖金的员工姓名。 - **SQL语句**: ```...

    Oracle Sql 优化

    在WHERE子句中使用`IS NULL`或`IS NOT NULL`会导致Oracle优化器无法利用索引进行优化,因为NULL值并不参与索引排序。为了充分利用索引,应避免在WHERE子句中使用这类条件,除非确实需要检查NULL值的存在。 ##### ...

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

    - 主键类型为`NUMBER(6)`,最大值为999999。 - 插入时若列值为空,可直接留空不写,系统默认会插入`NULL`值。 #### DELETE(删除记录) - **基本语法**:`DELETE FROM 表名 WHERE 条件;` - **注意**:删除记录后...

    Oracle笔记

    - **聚合函数**:如`sum()`、`avg()`、`max()`、`min()`等,用于计算一组值的总和、平均值、最大值和最小值。 - **转换函数**:如`to_date()`、`to_char()`等,用于数据类型的转换。 #### 十、高级主题与优化 除了...

    Oracle11g学习笔记

    - 处理null值:`SELECT NVL(column_name, default_value) FROM table_name;` - LIKE操作符:`SELECT * FROM table_name WHERE column_name LIKE '%pattern%';` - IN:`SELECT * FROM table_name WHERE column_...

    oracle复习笔记01

    - **聚合函数**:`SUM()`, `AVG()`, `COUNT()`, `MAX()`, `MIN()` 等用于计算列的总和、平均值、计数、最大值和最小值。 - **GROUP BY 与 HAVING 子句**: - `GROUP BY` 子句用于将结果集按一个或多个列分组。 - `...

    Oracle命令大全 sql

    13. **处理NULL值**:`NVL`函数将NULL替换为指定值,如`SQL> SELECT NVL(comm, 0) FROM emp`。 14. **DECODE函数**:根据指定条件返回不同结果,如`DECODE(column, value1, result1, value2, result2, ...)` 15. *...

    Oracle 10g笔记

    - **MAX**: 查找最大值。 - 示例:`SELECT MAX(sal) FROM emp;` 查找最高工资。 - **MIN**: 查找最小值。 - 示例:`SELECT MIN(sal) FROM emp;` 查找最低工资。 #### 五、用户和会话管理 - **SELECT USER FROM ...

Global site tag (gtag.js) - Google Analytics