问题描述
我正在注册由加利福尼亚大学戴维斯分校提供的名为sql FOR DATA SCIENCE的Coursera课程。我正在做最后一个测试,下面是根据客户评论表的下一个问题:
其中是否有更多带有“爱”或“恨”字的评论?
我通过两个单独的SELECT语句获得响应,并获得两个输出:
SELECT COUNT(*) AS lovE
FROM REVIEW
WHERE TEXT LIKE '%love%';
+------+
| lovE |
+------+
| 1780 |
+------+
SELECT COUNT(*) AS HATE
FROM REVIEW
WHERE TEXT LIKE '%hate%';
+------+
| HATE |
+------+
| 232 |
+------+
+------+------+
| lovE | HATE |
+------+------+
| 1780 | 232 |
+------+------+
我对sql还是很陌生,尽管我得到了希望以更好的方式实现的响应。有什么建议吗?
解决方法
您可以在聚合中使用条件CASE..WHEN
表达式:
SELECT SUM(CASE WHEN TEXT LIKE '%love%' THEN 1 END) AS LOVE,SUM(CASE WHEN TEXT LIKE '%hate%' THEN 1 END) AS HATE
FROM REVIEW