@vasenka

Как составить запрос для выборки из базы по одинаковым значениям двух столбцов?

Доброго дня! Есть задача — выбрать из таблицы строки, в которых есть одинаковые значения. Пример таблицы ниже ↓

|id|number|country|
|123|789-456-46|Mexico|Helen
|654|65-741-697|England|Victor
|789|54-485-664|England|Michael
|334|55-895-231|Mexico|Helen


Нужно выбрать строки, в которых повторяются значения из number и country, например, Mexico и Helen. Подскажите, в каком направлении думать? Какие операторы использовать?
  • Вопрос задан
  • 72 просмотра
Решения вопроса 1
BojackHorseman
@BojackHorseman Куратор тега SQL
...в творческом отпуске...
SELECT
 t.id
FROM <tablename> t
WHERE EXISTS(SELECT 1 FROM <tablename> t2 WHERE t2.number = t.number  AND t2.country = t.country)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@PavelMos
groupby having count
после count не должно быть пробела
добавлять столбец "c" со счётчиком необязательно
см. также sql aggregate functions multiple clause / sql агрегирование несколько условий
upd без group by (id) запрос нормально не будет выполнятся, но почему, не знаю.

SELECT *, COUNT(*) as C 
FROM table1 
GROUP BY (id)
HAVING COUNT(country)>1 AND COUNT(name)>1
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы