Mor*_*eus 6 sql t-sql sql-server
我有以下数据:
Number c1 c2 c3
325 A K NFW
325 U G GFD
32713 A K fgh
3271 U G ghad
327 A G yrg
3277 A K bfb
Run Code Online (Sandbox Code Playgroud)
我不想选择那些不唯一的行.即我只想要那些具有不同"数字"列的行.我的结果应该看起来像:
Number c1 c2 c3
32713 A K fgh
3271 U G ghad
327 A G yrg
3277 A K bfb
Run Code Online (Sandbox Code Playgroud)
我编写了以下代码,但它并没有完全正常工作:
SELECT * from [table] GROUP BY [all columns ] HAVING Count(*) = 1
Run Code Online (Sandbox Code Playgroud)
任何建议,以获得他所需的结果将不胜感激.
您还可以使用窗口聚合
WITH T
AS (SELECT *,
COUNT(*) OVER (PARTITION BY Number) AS C
FROM [table])
SELECT Number,
c1,
c2,
c3
FROM T
WHERE C = 1
Run Code Online (Sandbox Code Playgroud)
你几乎就在那里,只是在数字上分组.
SELECT Number, MIN(c1) AS c1, MIN(c2) AS c2, MIN(c3) AS c3
FROM [table]
GROUP BY Number
HAVING COUNT(*) = 1
Run Code Online (Sandbox Code Playgroud)