sql - 为什么我的 SQL 子查询会出现语法错误?使用计数()
问题描述
问题是:有更多的评论中有“爱”这个词还是“恨”这个词?
这是我尝试使用的代码:
SELECT
(COUNT(SELECT id FROM review WHERE text LIKE '%love%') FROM review) AS NumLove,
(COUNT(SELECT id FROM review WHERE text LIKE '%hate%') FROM review) AS NumHate
FROM
review
另一种变化:
SELECT
COUNT(SELECT id FROM review WHERE text LIKE '%love%') AS NumLove,
COUNT(SELECT id FROM review WHERE text LIKE '%hate%') AS NumHate
FROM
review
我收到一个错误:
“SELECT”附近的语法错误
我尝试过几次调整代码,但我不断收到语法错误。我可以自己运行任何一个选择语句,它们都会执行。我只是无法让它们在单个查询中运行。
解决方案
I prefer to use sum
instead of count
here when using a condition case expression
- since you really are adding up (summing) the number of 1s from each case expression
select
Sum(case when text like '%love%' then 1 else 0 end) as NumLove,
Sum(case when text like '%hate%' then 1 else 0 end) as NumHate
from review
推荐阅读
- python - 拆分字符串并将它们分配给变量
- android - 在文本字段中使用 setText 后 APK 无法编译
- javascript - BackboneJS:this.$el 在其他键值函数(Backbone.View)上未定义
- amazon-web-services - AWS CloudWatch 事件不触发 Lambda 函数
- firebase - 读取已部署的 Firebase 云函数源
- reactjs - 在打字稿中创建一个具有动力学属性的对象
- elixir - 如何在模块变量和局部静态变量之间进行比较时抑制透析器警告?
- xcode - 在通过 WKWebView 加载的视频上为 SwiftUI 启用内联媒体播放
- sql - 为什么 CREATE USER 更新 PG_ROLES 表?
- android - Android 注入传感器数据