我的数据库看起来像这样的业主: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