sql ex ru вопрос о несоответствии данных упражнений 63 - PullRequest
0 голосов
/ 29 мая 2020

есть две таблицы

Passenger(ID_psg, name)
Pass_in_trip(trip_no, date, ID_psg, place)

, на которых вы должны найти имена пассажиров, которые путешествовали более одного раза на одном и том же месте, а точнее вопрос выглядит следующим образом:

Find the names of different passengers that ever travelled more than once occupying seats with the same number

обе таблицы связаны друг с другом через id_psg. Столбец, содержащий место, находится на месте из pass_in_trip, который содержит имя пассажира, сидящего там через id_psg.

мой текущий код:

with a(name, heret) as (
select pr.name , count(p.place) as heret from passenger pr 
join pass_in_trip p on
pr.id_psg = p.id_psg
group by pr.name , p.place
)

select distinct name from a 
where heret > 1

на котором я сгруппировал имена пассажиров с их местом (местом), я получил правильный результат в первой базе данных, но имел несоответствие данных во второй, может ли кто-нибудь помочь мне понять, что не так в этой ситуации?

Ответы [ 2 ]

0 голосов
/ 30 мая 2020

похоже, что проблема была в операции соединения. Это правильный код для всех, кто сталкивается с подобным препятствием.

select name from Passenger where id_Psg IN (
select p.ID_psg from
pass_in_trip p 
group by p.ID_psg, p.place
having count(p.place) > 1 )

поиск имен, чьи id_psg приводят к этому подзапросу ie

0 голосов
/ 29 мая 2020

Имя не является целым числом, скорее всего, это строка определенного типа. Скорее всего, вам потребуется использовать COUNT () с группой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...