我的查询是关于SQL的。
我有一张包含多个记录的表格,其中包含' ID号码'列可能重复。为了删除重复,我们已经放置了一个where条件,如果帐号为null,则不显示记录。但这是在跳过只有记录而没有帐号的记录。
如果只存在单个记录,我们不希望应用where条件。如果存在多个记录,则仅适用于应该应用的条件。
请帮忙。
样本表如下:
ID number Name Account number Country
123456 Sam 100034 China
156789 Nicky 100045 Russia
156789 Nicky Russia
453638 John Peru
564433 Bret 100035 Alaska
132323 Peter 100067 Slovenia
我需要上表中的所有唯一值。因此,我将where条件设置为不返回帐号为空的记录。因此它返回ID号为156789的一条记录,但跳过ID号453638.因此,如果该ID号只存在一条记录,则不应用条件。希望我的问题很明确。
答案 0 :(得分:1)
尝试使用count(*)
over
(partition by
...)`这样
select * from (
select m.*,
count(*) over (partition by m.[ID number]) cnt
from MyTable as m) sel
where sel.cnt = 1
or sel.[Account number] is not null