选择仅出现一次的那些行

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)

任何建议,以获得他所需的结果将不胜感激.

Mar*_*ith 9

您还可以使用窗口聚合

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)


Der*_*ler 6

你几乎就在那里,只是在数字上分组.

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)