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.