如何在Postgresql中获得不同的值?

如何在Postgresql中获得不同的值?,postgresql,postgresql-9.2,Postgresql,Postgresql 9.2,我有一个表approval,如下所示 m_requisition_id ad_wf_activity_id bpname designation ------------------------------------------------------------------------- 1014546 1014546 Abul Kalam Azad Asst. Manager 1014546

我有一个表
approval
,如下所示

m_requisition_id    ad_wf_activity_id    bpname            designation
-------------------------------------------------------------------------
1014546             1014546              Abul Kalam Azad   Asst. Manager
1014546             1225097              Md. Hasan Zahir   Plant Manager
1014546             1229239              Md. Hasan Zahir   Plant Manager
1014546             1229240              Sayela Alam       Sr. Manager
1014546             1229241              Md. Hasan Zahir   Plant Manager
1014546             1229242              Sayela Alam       Sr. Manager
现在,我需要基于
ad\u wf\u activity\u id
列的最大数量的
bpname
列的不同值,如下所示

m_requisition_id    ad_wf_activity_id    bpname            designation
-------------------------------------------------------------------------
1014546             1014546              Abul Kalam Azad   Asst. Manager
1014546             1229241              Md. Hasan Zahir   Plant Manager
1014546             1229242              Sayela Alam       Sr. Manager

在上,这将是不同的:

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;

您的数据模型未规范化,您很容易出现拼写稍有不同而导致的问题。

这将在
上有所不同:

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;
您的数据模型未规范化,您很容易出现拼写稍有不同的问题。

您可以使用max()函数,而不是像下面这样使用distinct

select m_requisition_id, max(ad_wf_activity_id), bpname, designation
from approval
GROUP BY m_requisition_id, bpname, designation
让我们在这里试试-

您可以使用max()函数,而不是像下面这样使用distinct

select m_requisition_id, max(ad_wf_activity_id), bpname, designation
from approval
GROUP BY m_requisition_id, bpname, designation
让我们在这里试试-