我想在下面编辑我的查询,以便它将共享相似术语的行(即爱/喜欢/不喜欢)组合在一起当前查询&结果
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>爱它 5 1 讨厌它 50 10 中性 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函数来捕获所有大小写变化。