データベースの説明は次のとおりです。
会社(ID_comp、名前)
Trip(trip_no, id_comp, plane, town_from, town_to, time_out, time_in)
乗客(ID_psg、名前)
Pass_in_trip(旅行番号、日付、ID_psg、場所)
- Company テーブルには、乗客を輸送する会社の ID と名前があります。
- Trip テーブルには、旅行に関する情報 (旅行番号、会社 ID、飛行機の種類、出発都市、到着都市、出発時刻、および到着時刻) があります。
- 乗客テーブルには、乗客の ID と乗客の名前があります。
- Pass_in_trip テーブルには、フライトに関する情報があります: トリップ番号、出発日 (日)、乗客の ID、およびフライト中の場所。
注意すべきは、
- どんな旅行も毎日行われています。フライトの所要時間が暦日 (24 時間) 未満である。
- 時刻と日付は比較的 1 つのタイム ゾーンと見なされます。
- 出発時間と到着時間が1分以内に表示されます。
- 同じ名前の乗客がいる場合があります (たとえば、ブルース・ウィリス)。
- 飛行中の場所は、数字の後に文字が続きます。数字は行番号を定義し、文字 (a - d) - 行の位置 (左から右へ) をアルファベット順に示します。
- 関係と制限は、データ スキーマに示されています。
質問は次のとおりです。
同じ座席で複数回飛行したさまざまな乗客の名前を見つけます。
私はこのクエリを試しました
select name from (
select id_psg, count(name) as total from (
select a.id_psg, name, date,place from passenger a join
pass_in_trip b on a.id_psg=b.id_psg order by a.id_psg, place
) as t1
group by t1.id_psg
) as a join passenger b on a.id_psg = b.id_psg
join pass_in_trip c on a.id_psg=c.id_psg
where total > 1
group by name,place
having count(place) >=2
order by name,place;
しかし、それは言います:
Wrong
Your query produced correct result set on main database, but it failed test on second, checking database
* Wrong number of records (more by 8)
- これは、ところでSQL-RUの演習です。