【问题标题】:SQL Return the associated value when recommended number is over unrecommended number推荐数大于非推荐数时SQL返回关联值
【发布时间】:2020-03-04 21:27:13
【问题描述】:

这是我的伪代码

SELECT DISTINCT place FROM opinions
WHERE COUNT(recommended)> COUNT(not recommended)
ORDER BY ASC

在阅读我在照片中的描述后,有人可以改进我的代码并检查使用子句是否有错误吗?请先阅读问题。

【问题讨论】:

  • 请用您正在使用的数据库标记您的问题。
  • “有人可以改进我的代码吗”。你是说你的代码运行了吗?

标签: sql database group-by count having-clause


【解决方案1】:

您可以使用聚合,并使用having 子句进行过滤:它允许使用聚合函数。 avg() 可以方便地处理类似布尔的意见:

select place
from opinions
group by place
having avg(case when opinion = 'recommended' then 1.0 else 0 end) > 0.5
order by place

某些数据库具有可以稍微缩短having 子句的功能。

在 MySQL 中:

having avg(opinion = 'recommended') > 0.5

【讨论】:

    猜你喜欢
    • 2013-02-28
    • 1970-01-01
    • 2011-06-01
    • 2017-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-19
    • 1970-01-01
    相关资源
    最近更新 更多