Postgres / SQL子查询-根据条件返回每个分组的多列

液态金属

努力与此子查询-它应该是基本的,但我缺少一些东西。我需要将它们作为较大查询的一部分提供。

我有客户,我想获得时间戳最高的一笔交易。

顾客

customer   foo
1          val1
2          val2

交易

tx_key  customer   timestamp   value 
1         1        11/22        10
2         1        11/23        15
3         2        11/24        20
4         2        11/25        25

查询的理想条件:

customer   foo    timestamp     value   
1          val1    11/23         15
2          val2    11/25         25

我成功编写了一个子查询,以通过使用多个子查询来计算所需的内容,但是当我拥有较大的数据集时,它非常慢。

我这样做是这样的:

(select timestamp where transaction.customer = customer.customer order by timestamp desc limit 1) as tx_timestamp 
(select value where transaction.customer = customer.customer order by timestamp desc limit 1) as tx_value

那么,如何将其简化为仅计算一次呢?在我的真实数据集中,我有15列连接超过10万行,因此,一遍又一遍地执行此操作还不够高效。

普里希(Mejepayil)

请尝试以下查询:

SELECT 
    T.customer, T.foo, T.timestamp, T.value
FROM Transaction T 
    JOIN
(SELECT 
    customer, max(timestamp) as timestamp
from Transaction GROUP BY customer) MT ON
    T.customer = MT.customer
    AND t.timestamp = MT.timestamp

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Postgres 子查询按日期分组

来自分类Dev

查询Postgres SQL JSON列

来自分类Dev

在postgres子查询中动态生成列

来自分类Dev

在 Postgres SQL 中使用子查询

来自分类Dev

Postgres SQL查询以多列结果转换组

来自分类Dev

仅当子查询返回结果postgres时更新表

来自分类Dev

根据条件聚合对Postgres jsonb数组的查询

来自分类Dev

使用子查询设置值,该子查询在Postgres上返回空行

来自分类Dev

SQL“处于”条件与子查询

来自分类Dev

SQL查询根据条件返回额外的列

来自分类Dev

SQL Postgres双重分组

来自分类Dev

单行子查询返回多行-SQL查询

来自分类Dev

单行子查询返回多行-SQL查询

来自分类Dev

考虑内部/外部子查询的过滤/分页的Postgres SQL性能

来自分类Dev

使用多个联接和分组优化SQL查询(Postgres 9.3)

来自分类Dev

Postgres 对多列进行慢速不同查询

来自分类Dev

根据另一个查询返回的条件在postgres中触发不同的查询

来自分类Dev

SQL 递归查询 Postgres

来自分类Dev

Postgres 复杂的 SQL 查询

来自分类Dev

Postgres SQL 查询

来自分类Dev

为什么 postgres 虚拟列会破坏拉起条件并强制子查询扫描?

来自分类Dev

Postgres SQL查询,返回ID为动态键的JSON对象

来自分类Dev

Postgres 返回标量,它是动态 sql 查询的结果

来自分类Dev

在Postgres中乘子查询

来自分类Dev

Django查询Postgres返回错误的列

来自分类Dev

返回多列的子查询

来自分类Dev

条件线索导致Postgres查询

来自分类Dev

Postgres查询返回意外结果

来自分类Dev

Postgres SQL查询以从列中查找值的计数