Я прочитал много потоков, но не получил правильное решение моей проблемы. Это сопоставимо с этим ThreadОператор SQL - LEFT JOIN и WHERE для отображения только первой строки
У меня есть запрос, который собирает данные и записывает его в сценарий оболочки в 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
или что-то вроде этого. До сих пор я не мог реализовать правильный подзапрос или использовать SQL-функцию ROW_NUMBER()
. Ваша помощь будет очень оценена. Результат выглядит так и, основываясь на последнем идентификаторе, мне просто нужна одна строка для каждого из этих чисел (все идентификаторы не являются строго последовательными).
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' должно дать вам результат, который вы хотите –
Возможно, мне что-то не хватает, но в начале вашего выбора у вас есть фатальная ошибка. Вы не можете назначить значение для строки (т. Е. ''" Идентификатор истории доз "' = d.dhs_id' является незаконным). Во-вторых, вы используете псевдоним 'd' (как в' WHERE d.dhs_id NOT IN ('1000', '10000') '), и я не вижу, где этот псевдоним определяется. – FDavidov
@FDavidov псевдоним для d (и других) следует позже в части SELECT. Я попробовал – Nurito