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

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

**表结构:**

截屏2022-01-03 下午5.45.38.png



> 以下示例是取最大创建时间的订单的name:


- [ ] ***方法1:***


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


```sql

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:多个最大值*


```sql

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

)

```


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

目录
相关文章
|
2月前
|
SQL
sql server模糊查询、分组
sql server模糊查询、分组
|
2月前
|
SQL 关系型数据库 数据库
实时计算 Flink版操作报错之使用SQL 将 PostgreSQL 的 date 类型字段转换为 TIMESTAMP 类型时遇到报错,该如何处理
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
1天前
|
SQL 存储 测试技术
|
12天前
|
SQL 存储 Oracle
SQL AUTO INCREMENT 字段
SQL AUTO INCREMENT 字段
17 2
|
24天前
|
SQL 关系型数据库 MySQL
MySQL数据库——索引(4)-SQL性能分析-profile详情、explain(profile查看指令,explain执行计划中各个字段的含义)
MySQL数据库——索引(4)-SQL性能分析-profile详情、explain(profile查看指令,explain执行计划中各个字段的含义)
22 2
|
5天前
|
SQL
sql语句按指定某个字段分组后删除重复数据只保留id最小/最大的一条数据
sql语句按指定某个字段分组后删除重复数据只保留id最小/最大的一条数据
7 0
|
2月前
|
SQL HIVE
【Hive SQL 每日一题】分组排名取值
创建了一个名为`sales_data`的测试表,包含商品ID、销售额和销售日期。展示了部分示例数据。接着,提供了三个SQL查询:1) 查找每个商品销售额最高的记录;2) 获取每个商品最近和最远的销售记录;3) 求每个商品距今第二近的销售记录。每个查询都利用了窗口函数来处理数据,并给出了相应的查询结果图。
|
2月前
|
SQL 关系型数据库 MySQL
简简单单 My SQL 学习笔记(2)——分组和简单数据的查询
简简单单 My SQL 学习笔记(2)——分组和简单数据的查询
|
24天前
|
SQL 关系型数据库 MySQL
MySQL数据库——SQL(3)-DQL(基本查询、条件查询、聚合函数、分组查询、排序查询、分页查询、案例练习)
MySQL数据库——SQL(3)-DQL(基本查询、条件查询、聚合函数、分组查询、排序查询、分页查询、案例练习)
28 0
|
27天前
|
SQL 数据库
数据库sql语句分组
在SQL中,`GROUP BY`语句用于将多行数据根据一个或多个列进行分组,以便可以对每个分组执行聚合函数,如计数、求和、求平均等。以下是一些基本的SQL分组示例。 1. **基本分组**