sql - 如何做一个 SQL 查询来计算出现在带有连接和分组依据的字符串列中的单词?
问题描述
我想计算“完成”一词在信息列中出现的次数。但问题是我想把它放在一个 group by 并加入。这是示例表:
乔布斯 工作表
组 组表
我想要这样的东西: 结果表
我正在考虑这样的查询:
Select j.Name, gName From Jobs as j Inner join groups as g On j.groupID = g.groupID Group by g.Name, j.name'
那么如何计算结果的每一行出现“完成”的次数呢?
解决方案
只需添加一个条件SUM
聚合,对true
或 1 的标志求和,类似于条件计数。以下包括替代表达:
- 使用
LIKE
if 列是开放式的并且需要字符串搜索。 - 如图所示,使用
=
if 列仅限于一致的值。请注意:平等=
比LIKE
. - 用于
CASE
那些不支持直接SUM
在 SQL Server 等逻辑条件上的 DBMS。
SELECT gName AS groupName
, j.Name AS jobName
, SUM(j.info LIKE '%completed%') AS NumberOfCompleted1
, SUM(j.info = 'Is completed') AS NumberOfCompleted2
, SUM(CASE
WHEN j.info = 'Is completed'
THEN 1
ELSE 0
END) AS NumberOfCompleted3
FROM Jobs AS j
INNER JOIN groups AS g
ON j.groupID = g.groupID
GROUP BY g.Name
, j.name
推荐阅读
- python - 无法在 Windows 10“权限被拒绝”上运行 Python 3.7
- node.js - 在后面或前面映射响应
- python-3.x - 循环中忽略的条件语句
- json - 如何在 django 中将 request.body 解析为 json
- python - 如何使用单独的线程运行多个 shell 作业并在同时执行每个线程后等待每个线程完成?
- c - 使用 dup2 重定向时的空白字符串
- mongodb - Mongodb从组中计算数组内元素的出现次数
- python - 获取嵌套括号中的所有文本(Python)
- rust - 是否可以只用一次查找在 HashMap 上执行一个“get”和两个“insert”?
- python - 除了 Beauitfulsoup,这是使用 try 的正确方法吗?