Sql with语句中三列中的两列不同

Sql with语句中三列中的两列不同,sql,plsql,Sql,Plsql,试图将我的查询添加到组中,但它不喜欢我的组,因此我必须想出其他方法。如何为每个唯一的Person\u iD和ah\u Person\u iD组合获取一行,与哪一行无关 WITH w_accnt AS (SELECT DISTINCT account.id AS id, account.group_code AS account_number, acco

试图将我的查询添加到组中,但它不喜欢我的组,因此我必须想出其他方法。如何为每个唯一的Person\u iD和ah\u Person\u iD组合获取一行,与哪一行无关

WITH w_accnt AS
             (SELECT DISTINCT account.id AS id,
                              account.group_code AS account_number,
                              account.attribute_1 AS group_number,
                              account.source_id AS ah_person_id,
                              weekly.person_id AS person_id                              
                FROM MyAccountTable account
               INNER JOIN MyWeeklyTable weekly
                  ON weekly.account_id = account.id
            
                 ),
示例表

Person   AH_PERSON   ACCOUNT_num
A         1           22
B         2           23
B         2           24 
C         3           25
C         4           26
我想要的是预期的结果

Person   AH_PERSON   ACCOUNT_num
A         1           22
B         2           23
C         3           25
C         4           26
感谢使用聚合:

SELECT MIN(a.id) AS id, MIN(a.group_code) AS account_number,
       MIN(a.attribute_1) AS group_number,
       a.source_id AS ah_person_id,
       w.person_id AS person_id                              
FROM MyAccountTable account a JOIN
     MyWeeklyTable w
     ON w.account_id = a.id
GROUP BY a.source_id, w.person_id
或者窗口功能:

SELECT aw.*
FROM (SELECT a.id, a.group_code AS account_number, a.attribute_1 AS group_number,
             a.source_id AS ah_person_id, w.person_id AS person_id,
             ROW_NUMBER() OVER (PARTITION BY a.source_id, w.person_id ORDER BY a.id DESC) as seqnum                              
      FROM MyAccountTable account a JOIN
           MyWeeklyTable w
           ON w.account_id = a.id
      GROUP BY a.source_id
     ) aw
WHERE seqnum = 1;
这使您能够更好地控制返回的值,并确保它们都来自同一行