Как найти записи из таблицы, в которой одинаковые номера записей имеют несколько ключей - PullRequest
0 голосов
/ 29 января 2012

Мои столбцы такие:

column1 | column2
--------+--------
 100    |  01
 100    |  01
 101    |  02
 101    |  03
 102    |  04
 102    |  05
 103    |  06
 104    |  07
 104    |  07

И я хочу вывод как это:

column1 | column2
--------+--------
101     |  02
101     |  03
102     |  04
102     |  05

Ответы [ 4 ]

1 голос
/ 29 января 2012
declare @T table
(
  c1 int,
  c2 int
)

insert into @T values
(100,       1),
(100,       1),
(101,       2),
(101,       3),
(102,       4),
(102,       5),
(103,       6),
(104,       7),
(104,       7)

;with C as
(
  select C1,
         C2,
         count(*) over(partition by C1, C2) as D1,
         count(*) over(partition by C1) as D2
  from @T
)
select C1, C2
from C
where D1 = 1 and 
      D2 = 2

Если вы хотите включить 103 в набор результатов, вы можете использовать это:

;with C as
(
  select C1,
         C2,
         count(*) over(partition by C1, C2) as D1
  from @T
)
select C1, C2
from C
where D1 = 1
0 голосов
/ 29 января 2012
SELECT
  column1,
  column2
FROM atable
WHERE column1 IN (
  SELECT column1
  FROM atable
  GROUP BY column1
  HAVING COUNT(DISTINCT column2) > 1
)
0 голосов
/ 29 января 2012

попробуйте

select myTable.column1,myTable.column2 from myTable,
(select column1 from 
              (select distinct column1, column2 from myTable where column2 ) 
group by column1 having count(column1) > 1) tempTable 
where myTable.column1=tempTable.column1 
order by myTable.column1,myTable.column2
0 голосов
/ 29 января 2012

Попробуйте следующий запрос. Замените имя таблицы на правильное имя таблицы.

SELECT Column1,Column2 FROM dbo.TableName GROUP BY Column1,Column2
HAVING count(*)<=1

Пожалуйста, попробуйте

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...