Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Одинаковые значения  [new]
Demer
Member

Откуда:
Сообщений: 82
Всю голову сломал - не понимаю как сделать (возможно переработал )) )
Есть такая таблица:
автор
Column1 | Column2
---------------------
1 | Москва
1 | Москва
2 | Москва
2 | Тверь
3 | Москва
4 | Тверь
5 | Тверь

Нужно составить запрос, который вернет следующую таблицу:
автор
Column1 | Column2
---------------------
2 | Москва
2 | Тверь


Т.е. с одинаковыми Column1 и разными Column2
8 июн 11, 14:49    [10783267]     Ответить | Цитировать Сообщить модератору
 Re: Одинаковые значения  [new]
yado4eg
Member

Откуда:
Сообщений: 202
Demer,

а по какому принципу формируется Column1 ? или там просто '2' поставить ? :)
8 июн 11, 14:52    [10783302]     Ответить | Цитировать Сообщить модератору
 Re: Одинаковые значения  [new]
invm
Member

Откуда: Москва
Сообщений: 9826
select column1 from Таблица group by column1 having count(distinct column2) > 1
Остальное доработаете сами.
8 июн 11, 14:54    [10783328]     Ответить | Цитировать Сообщить модератору
 Re: Одинаковые значения  [new]
1
Guest
select t3.col1, t3.col2
from (select col1
from (select distinct col1,col2 from tbl) t1
group by col1 having count(col1)>1) t2
inner join tbl t3 on t2.col1=t3.col1
8 июн 11, 14:58    [10783359]     Ответить | Цитировать Сообщить модератору
 Re: Одинаковые значения  [new]
1
Guest
ну и как для случая col1=1, col2='v' ; col1=1, col2=NULL ?
8 июн 11, 15:01    [10783381]     Ответить | Цитировать Сообщить модератору
 Re: Одинаковые значения  [new]
ё
Guest
select * from @t t1
where (select count(distinct t2.Column2) from @t t2 where t2.Column1=t1.Column1) > 1
8 июн 11, 15:01    [10783385]     Ответить | Цитировать Сообщить модератору
 Re: Одинаковые значения  [new]
AmKad
Member

Откуда:
Сообщений: 5308
with s as
(select 1 id, 'Москва' t union all
 select 1 id, 'Москва' t union all
 select 2 id, 'Москва' t union all
 select 2 id, 'Тверь'  t union all
 select 3 id, 'Москва' t union all
 select 4 id, 'Тверь'  t union all
 select 5 id, 'Тверь'  t
)
select id, t
from
  (select id, t, max(dr) over (partition by id) mx
   from
     (select s.*, dense_rank() over (partition by id order by t) dr
      from s
     ) s
  )s   
where mx > 1;
8 июн 11, 15:21    [10783605]     Ответить | Цитировать Сообщить модератору
 Re: Одинаковые значения  [new]
Demer
Member

Откуда:
Сообщений: 82
Спасибо за помощь, но ни один из вариантов не подходит (ближе всех был invm)
Вот что я хотел увидеть:


select  t1.Column1,  t2.Column2
from  (
		select Column1
		from tbl 
		group by Column1
		having count(distinct Column2) > 1 
) t1
left join (
		select Column1, Column2
		from tbl 
		group by Column1, Column2
) t2 
on t1.Column1=t2.Column1
8 июн 11, 15:22    [10783620]     Ответить | Цитировать Сообщить модератору
 Re: Одинаковые значения  [new]
ё
Guest
Demer
Спасибо за помощь, но ни один из вариантов не подходит (ближе всех был invm)
Вот что я хотел увидеть:


select  t1.Column1,  t2.Column2
from  (
		select Column1
		from tbl 
		group by Column1
		having count(distinct Column2) > 1 
) t1
left join (
		select Column1, Column2
		from tbl 
		group by Column1, Column2
) t2 
on t1.Column1=t2.Column1

...и нахера тут может быть нужен left join ???

declare @t table (Column1 int, Column2 varchar(10))

insert into @t

select 1 , 'Москва' union all
select 1 , 'Москва' union all
select 2 , 'Москва' union all
select 2 , 'Тверь' union all
select 3 , 'Москва' union all
select 4 , 'Тверь' union all
select 5 , 'Тверь'

--

select * from @t t1
where (select count(distinct t2.Column2) from @t t2 where t2.Column1=t1.Column1) > 1

-- select column1 from @t group by column1 having count(distinct column2) > 1

select  t1.Column1,  t2.Column2
from  (
		select Column1
		from @t 
		group by Column1
		having count(distinct Column2) > 1 
) t1
left join (
		select Column1, Column2
		from @t 
		group by Column1, Column2
) t2 
on t1.Column1=t2.Column1

(7 row(s) affected)

Column1     Column2    
----------- ---------- 
2           Москва
2           Тверь

(2 row(s) affected)

Column1     Column2    
----------- ---------- 
2           Москва
2           Тверь

(2 row(s) affected)

???
8 июн 11, 15:27    [10783667]     Ответить | Цитировать Сообщить модератору
 Re: Одинаковые значения  [new]
Demer
Member

Откуда:
Сообщений: 82
ё,

Думаю здесь вина моя - неправильный пример привел.
Привожу другой:


Column1 | Column2
---------------------
1 | Омск
1 | Москва
2 | Москва
2 | Тверь
3 | Москва
4 | Мурманск
5 | Тверь
6 | Сочи
7 | Анапа
6 | Вологда

Результат должен быть такой:

Column1 | Column2
---------------------

2 | Москва
2 | Тверь
6 | Сочи
6 | Вологда
8 июн 11, 15:43    [10783839]     Ответить | Цитировать Сообщить модератору
 Re: Одинаковые значения  [new]
AmKad
Member

Откуда:
Сообщений: 5308

1 | Омск
1 | Москва
А это почему в результат не вошло?
8 июн 11, 15:49    [10783888]     Ответить | Цитировать Сообщить модератору
 Re: Одинаковые значения  [new]
Demer
Member

Откуда:
Сообщений: 82
AmKad,

Ваша правда )) Это тоже должно быть в результате =)
8 июн 11, 15:54    [10783941]     Ответить | Цитировать Сообщить модератору
 Re: Одинаковые значения  [new]
AmKad
Member

Откуда:
Сообщений: 5308
Demer
AmKad,

Ваша правда )) Это тоже должно быть в результате =)

Ну так что, неужели среди приведенных примеров нет ни одного подходящего?
8 июн 11, 15:55    [10783963]     Ответить | Цитировать Сообщить модератору
 Re: Одинаковые значения  [new]
Demer
Member

Откуда:
Сообщений: 82
AmKad,
Боюсь категорически сказать нет, но я все проверил - все мимо
8 июн 11, 16:00    [10784019]     Ответить | Цитировать Сообщить модератору
 Re: Одинаковые значения  [new]
AmKad
Member

Откуда:
Сообщений: 5308
Demer
AmKad,
Боюсь категорически сказать нет, но я все проверил - все мимо

Я тебе не верю.
8 июн 11, 16:10    [10784112]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить