Postgresql 在值为最大值的位置使用时间戳联接列
我有一张看起来像的桌子Postgresql 在值为最大值的位置使用时间戳联接列,postgresql,Postgresql,我有一张看起来像的桌子 +-------+-----------+ | value | timestamp | +-------+-----------+ +---+----------+---+----------+ | 1 | 1.2.1001 | 3 | 1.1.1000 | | 2 | 5.5.1021 | 3 | 1.1.1000 | | 3 | 1.1.1000 | 3 | 1.1.1000 | +---+----------+---+----------+ 我正在尝试构建一个查
+-------+-----------+
| value | timestamp |
+-------+-----------+
+---+----------+---+----------+
| 1 | 1.2.1001 | 3 | 1.1.1000 |
| 2 | 5.5.1021 | 3 | 1.1.1000 |
| 3 | 1.1.1000 | 3 | 1.1.1000 |
+---+----------+---+----------+
我正在尝试构建一个查询,它给出如下结果
+-------+-----------+------------+------------------------+
| value | timestamp | MAX(value) | timestamp of max value |
+-------+-----------+------------+------------------------+
所以结果看起来像
+-------+-----------+
| value | timestamp |
+-------+-----------+
+---+----------+---+----------+
| 1 | 1.2.1001 | 3 | 1.1.1000 |
| 2 | 5.5.1021 | 3 | 1.1.1000 |
| 3 | 1.1.1000 | 3 | 1.1.1000 |
+---+----------+---+----------+
但我在用相应的时间戳连接专栏时遇到了困难
有什么提示或建议吗?
提前谢谢
如需了解更多信息,请:
在实际项目中,最大值通过GROUPBY子句按月和日分组,顺便说一句,这很有效,但不知何故,我在加入最大值的时间戳时遇到了困难
编辑
交叉联接是个好主意,但我希望按月份对它们进行分组,例如:
+---+----------+---+----------+
| 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
我添加了一些示例数据和当前查询的示例。
如何将相应的时间戳添加到最大值?尝试使用两个子查询进行交叉连接,第一个子查询选择所有记录,第二个子查询获取一行,表示最大值的时间戳,例如
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">
使用窗口,因为您与pg一起使用
Select *, max( value ) over (), max( timestamp ) over() from table
这将为您提供每行中所有值的最大值
您可以在查询时提供一些注释吗?@maxmomersteeg该查询表示两个子查询的交叉连接,第一个是所有记录,第二个是一行,表示最大值的时间戳,即:。一开始看起来不错,但如何按月份和年份分组?按col_时间戳分组,日期部分为“月”,col_时间戳不起作用……您似乎遗漏了模式定义/示例数据。如果没有有用的样本数据,帮助您工作就困难得多。这是有用的。否则,我们都必须制作自己的虚拟数据,减慢其他有用问题的回答速度。如果您碰巧编辑了您的问题以添加示例数据,请在您这样做之后进行评论,我会看一看。我添加了小提琴。希望helps@mjreaper如果我的答案是你想要的,你能验证一下吗!?