SQL Server:在某些coulmn上仅选择一行具有相同ID的行
我有一个有3列的表: -身份证 -从 -到 我有这样的数据SQL Server:在某些coulmn上仅选择一行具有相同ID的行,sql,sql-server,Sql,Sql Server,我有一个有3列的表: -身份证 -从 -到 我有这样的数据 ----------------------- ID | FROM | TO 1 | 2 | 1 2 | 5 | 1 3 | 7 | 1 4 | 2 | 1 5 | 2 | 1 6 | 9 | 1 7 | 3 | 1 8 | 4 |
-----------------------
ID | FROM | TO
1 | 2 | 1
2 | 5 | 1
3 | 7 | 1
4 | 2 | 1
5 | 2 | 1
6 | 9 | 1
7 | 3 | 1
8 | 4 | 1
9 | 5 | 1
我想创建一个查询,选择to=1的所有行,我不想显示以前检索到的行,例如,我有多行FROM=2和to=1,我只需要检索该行一次
我的表格看起来不是这样的,但我举了一个小例子,因为我的目标是收集所有数字,但没有任何冗余 使用
DISTINCT
从表中选择DISTINCT from,to to to,其中to=1
使用DISTINCT关键字
select distinct m.from,m.to from mytable as m;
您只需按要显示的列进行分组:
select [from] from mytable group by [from]
如果你想知道你有多少个From,你需要做的就是:
select [from], count(*) from mytable group by [from]
您可以使用distinct
,但它比group by慢,但需要更多内存
如果您想了解分组依据
和不同
之间的区别,请阅读此处:
不确定您的确切意思
选择distinct[FROM]FROM TableName,其中[TO]=1
或
对于给定的[TO],每个不同的[FROM]值可能需要一行
;with cte as (
select ID, [FROM], [TO],
rn = row_number() over (partition by [FROM] order by ID)
from TableName
where [TO] = 1
)
select ID, [FROM], [TO]
from cte
where rn=1
是否需要返回/显示除“发件人”和“收件人”之外的其他列?是否需要
ID
列?如果需要,应选择哪一列?非常感谢,非常有帮助:)