三列中有两列是不同的

rvpgvaaj  于 2021-07-26  发布在  Java
关注(0)|答案(3)|浏览(259)

我想要distinct/firstvalue,当一个person\u id和一个ah\u person\u id的唯一帐户\u id值,不管是哪一个,有时还有一个person\u id和一个不同的ah\u person\u id。示例表

Person   AH_PERSON   ACCOUNT_ID
A         1           22
B         2           23
B         2           24 
C         3           25
C         4           26

我想要的是预期的结果

Person   AH_PERSON   ACCOUNT_ID
A         1           22
B         2           23
C         3           25
C         4           26

我试过使用groupby和distinct,但是没有得到我想要的结果,有人能举个例子吗?谢谢您

SELECT DISTINCT person_id,
(SELECT ah_person_id
  FROM w_accnt
WHERE id = My_Table.account_id) AH_PERSON ,
account_id 
FROM My_Table
fcy6dtqo

fcy6dtqo1#

我会按顺序分组 person_id 以及 ah_person_id ,取最小值 account_id :

SELECT   person_id, ah_person_id, MIN(account_id)
FROM     mytable
GROUP BY person_id, ah_person_id
mpgws1up

mpgws1up2#

您可以使用sql行数函数来解决这个问题

8zzbczxx

8zzbczxx3#

你能试试这个剧本吗?它可以解决你的问题

;WITH cte AS(
SELECT

* ,

ROW_NUMBER() OVER(PARTITION BY AH_PERSON ORDER BY ACCOUNT_ID ASC) AS OrdererAccounts
from

# MyTable

)

SELECT
    Person, AH_PERSON, ACCOUNT_ID
FROM
    cte
WHERE
    OrdererAccounts = 1
ORDER BY
    PERSON

相关问题