Привет У меня есть запрос, который выглядит следующим образом:
SELECT device_id, tag_id, at, _deleted, data,
row_number() OVER (PARTITION BY device_id ORDER BY at DESC) AS row_num
FROM mdb_history.devices_tags_mapping_history
WHERE at <= '2019-04-01'
AND _deleted = False
AND (tag_id = '275674' or tag_id = '275673')
AND row_num = 1
Однако, когда я запускаю следующий запрос, я получаю следующую ошибку:
ERROR: column "row_num" does not exist
Есть ли способ на go об этом. Один из способов, которым я пытался, было использовать его следующим образом:
SELECT * from (SELECT device_id, tag_id, at, _deleted, data,
row_number() OVER (PARTITION BY device_id ORDER BY at DESC) AS row_num
FROM mdb_history.devices_tags_mapping_history
WHERE at <= '2019-04-01'
AND _deleted = False
AND (tag_id = '275674' or tag_id = '275673')) tag_deleted
WHERE tag_deleted.row_num = 1
Но это становится слишком сложным, поскольку я делаю это с другими запросами, так как у меня есть номер соединения, и мне нужно выбрать столбец, как указано от так это вызывает много выбора оператора. Любой умный способ сделать это более простым способом. Спасибо