【发布时间】:2021-11-07 11:56:25
【问题描述】:
我有一个结构如下的表
[id] [int] IDENTITY(1,1) NOT NULL,
[account_number] [int] NOT NULL,
[account_name] [varchar(100)] NULL,
[account_chapter] [varchar(20)] NULL,
可以有很多行具有相同的 account_number,但 account_name 和 account_chapters 不同。
例如,我们可以有如下内容:
id account_number account_name account_chapter
12 1111 Name01 chapter01
13 1111 Name02 chapter02
14 2222 Name03 chapter07
15 2222 Name05 chapter11
16 7777 Name06 chapter44
我想要的是一个查询,对于每个 account_number,只过滤表中的第一个出现。例如,上面的查询必须转换为以下内容:
id account_number account_name account_chapter
12 1111 Name01 chapter01
14 2222 Name03 chapter07
16 7777 Name06 chapter44
这是我写的查询:
with req01 as (select distinct account_number from accounts)
select * from req01 full join (select * from accounts) as p on p.account_number = req01.account_number
它没有产生预期的结果。
有什么帮助吗? 谢谢。
【问题讨论】:
-
如果你的
id是一个身份,为什么会重复呢? -
@GordonLinoff 我编辑了问题
标签: sql sql-server duplicates