我有一个db的下一个结构,我只需要按id获得最近的行,例如,id 1的最新行,id 2的最重新行,等等,现在我有了以下查询:
SELECT max(fecha), id_transaccion, id_movimiento
FROM transaccion_movimiento
group by (id_transaccion, id_movimiento, fecha);以后要适应这种情况:
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 " +拜托,我需要帮助

发布于 2017-12-01 02:55:40
我建议您考虑使用row_number() over()代替。请参阅窗口函数
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。
, ROW_NUMBER() OVER (PARTITION BY id_transaccion
ORDER BY fecha DESC) AS ultima_fecha_rowhttps://stackoverflow.com/questions/47584144
复制相似问题