SELECT带有相应时间的MAX(列值)的行,按名称DISTINCT

EzrealReal:

我想选择最大值及其对应的发生时间和小时数,以名称区分DISTINCT

我的时间是str数据类型。我们是否在此使用自我内部联接以这样做?

我的桌子是:

name    high             time                
-------|-----|---------------------------
name 1 | 12  | 2020-05-25 12:01:00-04:00 
name 1 | 14  | 2020-05-25 12:02:00-04:00
name 1 | 16  | 2020-05-25 12:03:00-04:00
name 2 | 12  | 2020-05-25 12:01:00-04:00 
name 2 | 11  | 2020-05-25 12:02:00-04:00
name 2 | 10  | 2020-05-25 12:03:00-04:00
name 3 | 21  | 2020-05-25 12:01:00-04:00 
name 3 | 23  | 2020-05-25 12:02:00-04:00 
name 3 | 22  | 2020-05-25 12:03:00-04:00 

我想要的结果是

  name   hour            datetime           max_high
--------|-----|---------------------------|--------
 name 1 | 12  | 2020-05-25 12:03:00-04:00 | 16   
 name 2 | 12  | 2020-05-25 12:01:00-04:00 | 12
 name 3 | 12  | 2020-05-25 12:02:00-04:00 | 23

非常感谢!

蒂姆·比格莱森(Tim Biegeleisen):

ROW_NUMBER 将是前往这里的一种方式:

WITH cte AS (
    SELECT *, ROW_NUMBER() OVER (PARTTITON BY name ORDER BY high DESC) rn
    FROM yourTable
)

SELECT
    name,
    HOUR(CAST(datetime AS timestamp)) AS hour,
    datetime,
    high AS max_high
FROM cte
WHERE rn = 1
ORDER BY name;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

获取带有固定时间戳的列的MAx值

带有响应时间的Wget

如何通过SQL中的另一列选择具有MAX(列值),DISTINCT的行?

命名查询以SELECT的行具有MAX(列名),DISTINCT由另一列

按行分组的值按具有相同名称的列分组

按R中的特定行名称逐行提取所有列值

从 df col 名称中的 DF 列查找值,取相应行的值

带有默认名称的NULL值作为列的Sql Server数据透视表行

如何按列分组而不考虑其他列并返回所有相应的行?

排名-将相应的列值选择为MAX(列)值

Shell Scrip:将行拆分为数组/YAML 格式,并带有相应的键和值

打印带有值的单元格以及两行以上的相应单元格

将NA替换为具有相应列名称的另一列中的值

SELECT行值WHERE MAX()是GROUP BY查询中的列值

选择带有相应字段的max()-无组

通过带有日期时间列的SELECT检查冲突事件

R - 遍历名称中带有点的列的值

SELECT DISTINCT有两列

从带有熊猫的日期时间列中选择行

检查列值是否高于具有相应列的其他行

Mysql SELECT名称,其中具有该名称的所有行均具有某些值

Spring Data JPA过滤器的枚举值集,带有@query或按函数名称

MySQL - 带有额外列的 UNION DISTINCT

SQL Server:将具有相似列值的行分组为一行,然后将相应的行求和

Excel宏可将列A中具有唯一名称的行复制到相应命名的wosksheets

按标题名称打印某些列,上面带有空格(awk,sed)

合并带有不规则时间戳记和每个文件不同标题名称的CSV列

如何从 arraylist 中制作哈希图,其中具有重复值的一列是键,相应的行作为值

带有行值到列的Python摘要