首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从postgres的小组那里得到las记录?

从postgres的小组那里得到las记录?
EN

Stack Overflow用户
提问于 2017-11-30 23:09:53
回答 1查看 34关注 0票数 0

我有一个db的下一个结构,我只需要按id获得最近的行,例如,id 1的最新行,id 2的最重新行,等等,现在我有了以下查询:

代码语言:javascript
复制
SELECT  max(fecha), id_transaccion, id_movimiento
FROM transaccion_movimiento 
group by (id_transaccion, id_movimiento, fecha);

以后要适应这种情况:

代码语言:javascript
复制
LEFT JOIN (SELECT  max(fecha), id_transaccion, id_movimiento FROM transaccion_movimiento  group by (id_transaccion, id_movimiento, fecha) ORDER BY ID_TRANSACCION asc LIMIT 1)nn ON T.id_transaccion = nn.id_transaccion LEFT JOIN ctl_tipo_movimiento IM ON IM.id_tipo_movimiento = nn.id_movimiento " +

拜托,我需要帮助

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-01 02:55:40

我建议您考虑使用row_number() over()代替。请参阅窗口函数

代码语言:javascript
复制
SELECT
      *
FROM x
LEFT JOIN (
      SELECT
            fecha
          , id_transaccion
          , id_movimiento
          , ROW_NUMBER() OVER (PARTITION BY id_transaccion, id_movimiento
                               ORDER BY fecha DESC) AS ultima_fecha_row
      FROM transaccion_movimiento
      ) nn ON T.id_transaccion = nn.id_transaccion asn nn.ultima_fecha_row=1
LEFT JOIN ctl_tipo_movimiento im ON im.id_tipo_movimiento = nn.id_movimiento

现在,虽然我认识到,法哈的意思是日期,对我来说没有什么其他的意义,所以你可能不得不调整这个建议。例如,我不确定“分区”中是否需要id_movimiento

代码语言:javascript
复制
          , ROW_NUMBER() OVER (PARTITION BY id_transaccion
                               ORDER BY fecha DESC) AS ultima_fecha_row
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47584144

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档