не работает distinc
Пишу запрос, без distinct выводит с повторениями, при добавлении distinct ничего не меняется, только отсортировывается
SELECT DISTINCT("QP"."MRN") AS MRN ,
CONCAT( "QP"."SecondName", ' ', "QP"."Name", ' ', "QP"."MiddleName") AS fullName,
"App"."Time",
"App"."AppId",
"App"."PId",
"Q"."StartDate"
FROM "App"
LEFT OUTER JOIN "QP"
ON "App"."PId" = "QP"."PId"
LEFT OUTER JOIN "DS"
ON "App"."DSId" = "DS"."DSId"
LEFT OUTER JOIN "Queues"
ON "DS"."QId" = "Q"."QId"
WHERE "App"."PId" notnull
в чем проблема?
Ответы (2 шт):
Автор решения: Stefanov.sm
→ Ссылка
Может быть Вам надо только одна строка для каждого "QP"."MRN" AS MRN? Тогда Вам нужен DISTINCT ON. (детали)
SELECT DISTINCT ON ("QP"."MRN")
"QP"."MRN" AS MRN ,
CONCAT("QP"."SecondName", ' ', "QP"."Name", ' ', "QP"."MiddleName") AS fullName,
"App"."Time",
-- и так далее
Для неповторяющихся комбинации AppId и PId:
SELECT DISTINCT ON ("App"."AppId", "App"."PId")
"QP"."MRN" AS MRN ,
CONCAT("QP"."SecondName", ' ', "QP"."Name", ' ', "QP"."MiddleName") AS fullName,
"App"."Time",
-- и так далее
Автор решения: Герман Борисов
→ Ссылка
По тому как вы расставили скобки, очень похоже, что вы просто не понимаете как работает DISTINCT
В записи SELECT DISTINCT("QP"."MRN")…
DISTINCT - это модификатор команды SELECT
("QP"."MRN") - выражение для вычисления первого столбца.
DISTINCT не имеет параметров, он удаляет одинаковые строки