gpt4 book ai didi

postgresql - 加入具有最大值的时间戳的列

转载 作者:行者123 更新时间:2023-11-29 13:32:06 26 4
gpt4 key购买 nike

我有一张看起来像的 table

+-------+-----------+
| value | timestamp |
+-------+-----------+

我正在尝试构建一个查询,给出如下结果

+-------+-----------+------------+------------------------+
| value | timestamp | MAX(value) | timestamp of max value |
+-------+-----------+------------+------------------------+

让结果看起来像

+---+----------+---+----------+
| 1 | 1.2.1001 | 3 | 1.1.1000 |
| 2 | 5.5.1021 | 3 | 1.1.1000 |
| 3 | 1.1.1000 | 3 | 1.1.1000 |
+---+----------+---+----------+

但我无法加入具有相应时间戳的专栏。

有什么提示或建议吗?提前致谢!

更多信息(如果有帮助):在实际项目中,最大值是按月和日分组的(使用 group by 子句,顺便说一句,这很有效),但不知何故我坚持加入最大值的时间戳。

编辑

交叉连接是个好主意,但我想让它们按月分组,例如:

+---+----------+---+----------+
| 1 | 1.1.1101 | 6 | 1.1.1300 |
| 2 | 2.6.1021 | 5 | 5.6.1000 |
| 3 | 1.1.1200 | 6 | 1.1.1300 |
| 4 | 1.1.1040 | 6 | 1.1.1300 |
| 5 | 5.6.1000 | 5 | 5.6.1000 |
| 6 | 1.1.1300 | 6 | 1.1.1300 |
+---+----------+---+----------+

编辑 2

我为一些样本数据和当前查询的示例添加了一个 fiddle 。 http://sqlfiddle.com/#!1/efa42/1

如何将对应的时间戳加到最大值?

最佳答案

尝试使用两个子查询进行交叉连接,第一个选择所有记录,第二个获取一行代表最大值的时间戳,例如 <3;"1000-01-01">。

SELECT col_value,col_timestamp,max_col_value, col_timestamp_of_max_value FROM table1
cross join
(
select max(col_value) max_col_value ,col_timestamp col_timestamp_of_max_value from table1
group by col_timestamp
order by max_col_value desc
limit 1
) A --One row that represents the time_stamp of the max value, ie: <3;"1000-01-01">

关于postgresql - 加入具有最大值的时间戳的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21046663/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com