我的數據庫看起來像這樣的業主:SQL查詢 - 2個查詢涉及COUNT()和一定的行程
PEAK(NAME,ELEV,DIFF,MAP,區)
CLIMBER(NAME, SEX)
參加(TRIP_ID,NAME)
攀升(TRIP_ID,PEAK,WHEN)
- PEAK提供用戶感興趣的山峯信息。表中列出了每個峯的名稱,高程(以英尺爲單位),其難度級別(1-5級),地圖位於,它位於內華達山脈的地區。
- CLIMBER列出了俱樂部的成員,並給出了他們的名字和性別。
- PARTICIPATED給予參加各種攀巖旅行的登山者。每次旅行的參與者人數各不相同。
- CLIMBED說明每次攀登旅程中攀登哪個高峯,以及攀登每個高峯的數據。
我需要幫助瓦特/寫這兩個示例場景的SQL查詢:
- 哪些峯已被馬克和瑪麗攀升?
- 在哪些旅行中,所有參與者獲得的總高度超過500,000英尺?
這是我的第一個查詢:
SELECT PEAK
FROM CLIMBED
WHERE TRIP_ID IN
(SELECT TRIP_ID
FROM PARTICIPATED
WHERE NAME IN ('MARK','MARY')
GROUP BY TRIP_ID
HAVING COUNT(*) = 2
);
的問題瓦特/這個查詢只給了我所有的峯,馬克和瑪麗,他們採取了同樣的行程中已經攀升的一起。我需要以某種方式獲得他們兩人攀登的高峯,但他們不在一起。
對於第二個查詢,我不知道如何獲取所有參與者在特定TRIP_ID期間攀爬的每個峯值的COUNT()。
對於我的意思是具體地說,我需要能夠抓住所有的峯的,要麼馬克和瑪麗已經爬上不包括那些要麼馬克攀升和瑪麗並沒有第一次查詢或者瑪麗爬了馬克沒有。 – Scott