Перечитал много тем, но так и не нашел правильного решения своей проблемы. Это сопоставимо с этим Thread
У меня есть запрос, который собирает данные и записывает их для сценария оболочки в файл csv:
SELECT
'"Dose History ID"' = d.dhs_id,
'"TxFieldPoint ID"' = tp.tfp_id,
'"TxFieldPointHistory ID"' = tph.tph_id,
...
FROM txfield t
LEFT JOIN txfielpoint tp ON t.fld_id = tp.fld_id
LEFT JOIN txfieldpoint_hst tph ON fh.fhs_id = tph.fhs_id
...
WHERE d.dhs_id NOT IN ('1000', '10000')
AND ...
ORDER BY d.datetime,...;
Это основано на очень большой базе данных с большим количеством таблиц и машинных значений. Я выбрал интересующие меня столбцы и связал их по встроенным идентификаторам таблиц. Теперь мне нужно уменьшить свой результат, когда я получаю много строк с одинаковыми значениями, и только идентификаторы меняются. Мне просто нужна одна (первая) строка "tph.tph_id" с такой механикой, как
WHERE "Rownumber" is 1
или что-то в этом роде. До сих пор я не мог реализовать правильный подзапрос или использовать функцию ROW_NUMBER()
SQL. Ваша помощь будет очень признательна. Результат выглядит так, и, основываясь на последнем идентификаторе, мне просто нужна одна строка для каждого числа og (все идентификаторы не являются строго последовательными).
A01";261511;2843119;714255;3634457;
A01";261511;2843113;714256;3634457;
A01";261511;2843113;714257;3634457;
A02";261512;2843120;714258;3634464;
A02";261512;2843114;714259;3634464;
....
GROUP BY
[все поля, кроме tph.tph_id], хотя они предназначены для агрегирования,GROUP BY
должно дать вам желаемый результат - person Jameson the dog   schedule 14.12.2016'"Dose History ID"' = d.dhs_id
недопустимо). Во-вторых, вы используете псевдонимd
(как вWHERE d.dhs_id NOT IN ('1000', '10000')
), и я не вижу, где этот псевдоним определяется. - person FDavidov   schedule 14.12.2016