繁体   English   中英

用于比较字段中某些值的计数的 SQL 查询

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM