tabla - sql eliminar registros repetidos dejando solo 1
Cómo eliminar duplicados, que se generan con la función array_agg postgres (1)
Puede usar la palabra clave distinct
dentro de array_agg
:
SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT 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
¿Alguien tiene una idea de cómo reescribir siguiendo una consulta SQL para generar resultados, que solo contiene una aparición de nombre? (resultados agrupados por usuario).
La consulta
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
La consulta ejecutable está disponible en sqlfiddle.com . Haga clic en el botón Ejecutar SQL y obtendrá el resultado, que contiene Frantisek Smith dos veces