2016-03-15 4 views
0

Я не могу решить проблему с SQL-запросом.Условие над столбцом, который я только что создал

У меня есть таблица, которая содержит что-то вроде этого:

+------+------+------+ 
| Col1 | Col2 | Col3 | 
+------+------+------+ 
| A1 | B1 | C | 
| A2 | B2 | D | 
| A3 | B3 | E | 
| A3 | B3 | D | 
+------+------+------+ 

и хотите выбрать только строку, которые имеют уникальный COL3 если Col1 и Col2 имеют одинаковое значение.

Таким образом, результат должен быть:

+------+------+------+ 
| Col1 | Col2 | Col3 | 
+------+------+------+ 
| A1 | B1 | C | 
| A2 | B2 | D | 
+------+------+------+ 

Из строки 3 и 4 имеют аналогичную Col1 и Col2, но другой COL3.

Мне нужно поставить условие над новым столбцом, который я создаю во время запроса, и я не могу справиться с этим.

ответ

2

Это простая группа по, если я вас правильно понимаю:

select col1, col2, min(col3) as col3 
from the_table 
group by col1, col2 
having count(distinct col3) = 1 
+0

Это не должно быть 'COUNT (DISTINCT col3) = 1'? –

+0

Ты совершенно прав! Отлично работает. – obchardon

+0

@JoachimIsaksson: возможно, да (данные образца не требуют этого, но если я перечитаю вопрос, тогда вы правы). благодаря –

Смежные вопросы