【发布时间】:2017-05-05 20:43:41
【问题描述】:
有点 SQL 的新手,所以我很感激任何关于我在哪里出错的 SQL 语句的提示。
我有两张表,一张名为Hotel,另一张名为Review。它们通过HotelID 链接。我正在尝试返回与大于或等于 3 的OverallRating(Hotel 表中的属性)和大于或等于平均 Cleanliness(Review 属性)相关联的HotelIDs等于 5。
我知道有 没有 HotelID 满足这两个要求,但这个语句返回了很多结果。
SELECT
Hotel.HotelID
FROM
Hotel
INNER JOIN Review ON Hotel.HotelID = Review.ReviewID
GROUP BY
Hotel.HotelID
HAVING
( Hotel.OverallRating >= 3 )
AND
( AVG( NULLIF( Review.Cleanliness, -1 ) ) >= 5);
NULLIF 用于排除 -1 的值(表示没有评分)。
谢谢大家
【问题讨论】: