[英]Named Query to SELECT rows with MAX(column name), DISTINCT by another column
[英]SELECT rows with MAX(column value) with corresponding time, DISTINCT by name
我想 select 与其对应的发生时间和小时的最大值,其名称为 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
非常感谢!
ROW_NUMBER
将是 go 的一种方式:
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;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.