如何对具有相似术语的行求和



我想在下面编辑我的查询,以便它将共享相似术语的行(即爱/喜欢/不喜欢)组合在一起当前查询&结果

SELECT values,
count(distinct uuid) as count
FROM
`response_values` AS rv
left JOIN
`responses_comprehensive` AS r
ON
r.question_id=rv.qid
WHERE
question_wording="campaign rating" and values not like '%missing%'
GROUP BY
values

输出:

<表类>值数tbody><<tr>爱它51讨厌它5010中性2中性中性2

基本上,您需要为每个最终值创建类别,以便稍后对数据进行分组。

要构建这些类别,CASE语句和LIKE操作符组合就足够了。

我将添加一个新的列到"response_values"表与类别。

这将允许您保留原始响应并添加类别以稍后执行聚合。

这个查询将解决这个问题:

SELECT curated_values,
count(distinct uuid) as count
FROM
(SELECT *, CASE WHEN LOWER(term) LIKE '%love%' THEN "LOVE IT"
WHEN LOWER(term) LIKE '%hate%' THEN "HATE IT"
WHEN LOWER(term) LIKE '%neutral%' THEN "NEUTRAL"
ELSE "UNKNOWN" END AS curated_values FROM `response_values`) AS rv
left JOIN
`responses_comprehensive` AS r
ON
r.question_id=rv.qid
WHERE
question_wording="campaign rating" and values not like '%missing%'
GROUP BY
curated_values

你可以根据你的需要调整CASE从句。例如,我添加了一个LOWER函数来捕获所有大小写变化。

最新更新