#sql #rows
Вопрос:
Вам нужна небольшая помощь с SQL — запросом, пожалуйста. У меня есть таблица, похожая на приведенную ниже:
id | uprn | driverlicence |
===============================================
1 | 100000000420 | FARME100165AB5EW |
2 | 100000011420 | FARME100165AB5EW |
3 | 100000022420 | GARME100165AB5EW |
4 | 100000033420 | HARME100165AB5EW |
По сути, я хочу получить все строки, в которых uprn отличается, но лицензия одинакова. Таким образом, в приведенном выше примере я вернул бы только первые 2 строки, так как водительские права будут совпадать, но uprn этого не делает.
У меня нет существующего запроса, которым я мог бы поделиться, так как я не знаю, как это сделать, и я не собирался находить что-либо полезное в Интернете.
Комментарии:
1. пожалуйста, покажите желаемый результат, например
2. Вы хотите, чтобы uprn был таким же или другим? У вас есть противоречивые утверждения в вашем вопросе
3. Спасибо, я обновил вопрос. Я хочу попасть в первые два ряда
Ответ №1:
Мои знания SQL немного подзабыты, но этого должно хватить:
SELECT a.id, a.uprn, a.driverlicence
FROM mytable a
JOIN mytable b BY a.driverlicence == b.driverlicence
WHERE a.uprn != b.uprn
или альтернативно
SELECT *
FROM mytable
WHERE EXISTS(
SELECT *
FROM mytable other
WHERE uprn != other.uprn AND driverlicence == other.driverlicence)
Ответ №2:
Я думаю, что это проблема X-Y.Вы можете попробовать этот sql.если у вас есть другие потребности.пожалуйста, прокомментируйте мне.
select uprn,driverlicence from t1 where driverlicence in
(
-- select duplicate driverlicence
select driverlicence from t1 where uprn in
-- remove duplicate uprn
(select uprn from t1 group by uprn having count(*)<2)
group by driverlicence having count(*)>1
)
uprn | driverlicence
-------------- ------------------
100000000420 | FARME100165AB5EW
100000011420 | FARME100165AB5EW
Комментарии:
1. Спасибо за вашу помощь в этом, но, к сожалению, это не дает мне никаких результатов. Если я закомментирую группу по частям, я получу результаты, но есть дубликаты.
2. вы можете попробовать внутри sql шаг за шагом. сначала попробуйте сгруппироваться по uprn. тогда попробуй outer.by путь. какую базу данных вы использовали.