¿Cómo obtener un valor distintivo en Postgresql?

CorePress2024-01-25  11

Tengo una tabla de aprobación como la siguiente...

m_requisición_id ad_wf_actividad_id nombrebp designación 1014546 1014546 Abul Kalam Azad Asistente. Gerente 1014546 1225097 Dr. Hasan Zahir Gerente de la planta 1014546 1229239 Dr. Hasan Zahir Gerente de la planta 1014546 1229240 Sayela Alam Gerente sénior 1014546 1229241 Dr. Hasan Zahir Gerente de la planta 1014546 1229242 Sayela Alam Gerente sénior

Ahora necesito el valor distintivo de la columna bpname basado en el número máximo de la columna ad_wf_activity_id como se muestra a continuación.

m_requisición_id ad_wf_actividad_id nombrebp designación 1014546 1014546 Abul Kalam Azad Asistente. Gerente 1014546 1229241 Dr. Hasan Zahir Gerente de la planta 1014546 1229242 Sayela Alam Gerente sénior

------------------------------------

Puedes usar la función max() en lugar de distinta como a continuación

select m_requisition_id, max(ad_wf_activity_id), bpname, designation
from approval
GROUP BY m_requisition_id, bpname, designation

Intentemos aquí- https://dbfiddle.uk/?rdbms=postgres_12&fiddle=73f15e1ed96f1308a5984a91b1df91e2



------------------------------------

Eso sería DISTINTO EN:

SELECT DISTINCT ON (m_requisition_id, bpname, designation)
       m_requisition_id, bpname, designation
FROM atable
ORDER BY m_requisition_id, bpname, designation, ad_wf_activity_id DESC;

Su modelo de datos no está normalizado, es propenso a sufrir problemas causados ​​por ortografías ligeramente diferentes.

Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare