【SQL】根据一个字段分组求另一个字段的最大值,并带出其他字段

简介: 【SQL】根据一个字段分组求另一个字段的最大值,并带出其他字段

表结构:
在这里插入图片描述

以下示例是取最大创建时间的订单的name:
  • [ ] 方法1:

使用rank/rownumber/dense_rank函数做排序求出最大最小值,然后子查询查出排序第一的值。三个函数有区别。排序第一的聚合值有多个相同值的时候:rownumber会按照数据出现顺序取第一条值排序1,其他相同值顺延,rank会给相同值的都给出序列1,然后不会顺延序号,序号不连续。dense_rank与rank相同,都会给相同值给出序列1,但是会顺延序号,排序第二的会给出序号2,不同的话可以参考:https://www.cnblogs.com/heyang78/p/12684869.html

SELECT
    * 
FROM
    (
    SELECT
        order_id,
        `name`,
        create_time,
        ROW_NUMBER() over ( PARTITION BY order_id ORDER BY create_time desc) mm 
    FROM
        mutil_order 
    ) t 
WHERE
    t.mm =1
  • [ ] 方法2:

使用concat函数将分组字段和聚合字段拼接作为查询条件,但聚合字段有多个相同值的时候会带出多条。eg:多个最大值

SELECT
    order_id,
    `name`,
    create_time 
FROM
    mutil_order 
WHERE
    CONCAT( order_id, create_time ) IN (
    SELECT
        CONCAT(
            order_id,
        MAX( create_time )) 
    FROM
        mutil_order 
    GROUP BY
        order_id 
    )

有其他好方法可以互相交流呀-。-

目录
相关文章
|
14天前
|
SQL Java Scala
flink-cdc SQL Server op 字段如何获取?
Flink CDC 是 Apache Flink 的组件,用于捕获数据库变更事件。对 SQL Server,通过 Debezium 连接器支持变更数据捕获。`op` 字段标识操作类型(INSERT、UPDATE、DELETE)。配置包括添加依赖及设定 Source 连接器,可通过 Flink SQL 或 Java/Scala 完成。示例查询利用 `op` 字段筛选处理变更事件。
23 1
|
26天前
|
SQL
SQL开发问题之当从数据源读取多个字段时优化 COUNT(DISTINCT ...) 的查询的问题如何解决
SQL开发问题之当从数据源读取多个字段时优化 COUNT(DISTINCT ...) 的查询的问题如何解决
|
2天前
|
SQL Oracle 关系型数据库
SQL添加字段记录详解:技巧与方法实践
在数据库管理中,经常需要向表中添加新的字段(列)或向现有字段中插入新的记录(行)
|
26天前
|
SQL 数据挖掘 数据库
SQL分组函数
【7月更文挑战第24天】SQL分组函数
17 1
|
6天前
|
SQL
SQL SERVER数据分组后取第一条数据——PARTITION BY
SQL SERVER数据分组后取第一条数据——PARTITION BY
13 0
|
1月前
|
SQL 机器学习/深度学习 分布式计算
MaxCompute产品使用合集之怎么使用SQL查询来获取ODPS中所有的表及字段信息
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
1月前
|
SQL 分布式计算 DataWorks
MaxCompute产品使用合集之如何识别并执行某个字段的 SQL 语句,并输出结果
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
1月前
|
SQL 数据库
【SQL】已解决:SQL分组去重并合并相同数据
【SQL】已解决:SQL分组去重并合并相同数据
40 1
|
2月前
|
SQL 存储 测试技术
|
29天前
|
SQL 存储 索引
MySQL设计规约问题之为什么应该把字段定义为NOT NULL并且提供默认值
MySQL设计规约问题之为什么应该把字段定义为NOT NULL并且提供默认值