SQL-запрос для получения значения, имеющего несколько в одной таблице в SQL Server - PullRequest
0 голосов
/ 29 марта 2019

Допустим, у меня есть таблица со многими столбцами, например col1, col2, col3, id, variantId, col4, col5 и т. Д.

Однако меня интересует только id, variantId, который выглядит так:

+----------+-----------+
| id       | variantId |
+----------+-----------+
| a        | 11        |
| a        | 12        | 
| b        | 31        | 
| c        | 41        |
| c        | 54        | 
| d        | abc       | 
| e        | xyz       | 
| e        | xyz       | 
+----------+-----------+

Мне нужны разные идентификаторы, которые имеют количество разных вариантов более одного раза В этом случае я бы получил только a и c

Ответы [ 3 ]

3 голосов
/ 29 марта 2019

Вы можете использовать group by и having:

select id
from t
group by id
having min(variant_id) <> max(variant_id);

Вы также можете использовать:

having count(distinct variant_id) > 1
1 голос
/ 29 марта 2019

Попробуйте с группой, используя пункт

select id
from table
group by id
having count(distinct variant_id) > 1
0 голосов
/ 29 марта 2019

Вы можете сделать это более эффективно с EXISTS:

select distinct t.id
from tablename t
where exists (
  select 1 from tablename
  where id = t.id and variantid <> t.variantid
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...