Czy ktoś pomysł, jak przepisać następujące zapytanie SQL, aby wygenerować wyniki, które zawiera tylko jedno wystąpienie nazwy? (wyniki pogrupowane według użytkowników).Jak usunąć duplikaty, które są generowane z funkcją postgres array_agg
Zapytanie
SELECT array_to_string(array_agg(CONCAT(u.firstname, ' ', u.lastname)), ', ')
FROM log_has_item logitem
INNER JOIN log log ON log.id = logitem.log_id
INNER JOIN worker u ON log.worker_id = u.id
WHERE logitem.company_id = 1
wykonywalny zapytanie jest dostarczony na sqlfiddle.com. Kliknij przycisk Run SQL i będzie wynikać, który zawiera Frantisek Smith dwukrotnie
'array_agg (odrębną concat (.. .))) ' –
W postgre 9.0+ dostępna jest funkcja' string_agg (text, text) '. Może być łatwiej napisać 'string_agg (CONCAT (...), ',')' –
@a_horse_with_no_name odróżnia działa dobrze, ale miesza kolejność. Jakikolwiek sposób na zachowanie tego? – Rodrigo