[英]SQL Query to Compare Counts of Certain Values In a Field
我希望在学习编写这种类型的查询时得到一些帮助 - 我的 SQL 还不是很好,我正在尝试纠正这种情况。 假设我有一张类似于我在下面显示的表:
| id | hotel | opinion |
|:---|:-----:| -------:|
|1 |hotelA |good |
|2 |hotelA |good |
|3 |hotelA |bad |
|4 |hotelB |good |
|5 |hotelB |bad |
期望输出:hotelA
我如何编写查询以仅打印意见字段中出现更多“好”然后“坏”的酒店? 此外,非常欢迎任何可以提高 SQL 能力的资源:-)
这个想法是按酒店分组,只显示好比坏的酒店
select hotel
from hotels
group by hotel having sum(case when option = 'good' then 1 else -1 end) > 0
试试这个
SELECT TOP 1 hotel
FROM hotels
ORDER BY SUM(CASE WHEN opinion = 'good' THEN 1 ELSE -1 END) DESC
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.