我有这个代码(它有效):
SELECT sportsID, newsID, cID, SUM(likes) AS totalLikes
FROM like_table
GROUP BY sportsID, newsID
ORDER BY totalLikes DESC
我尝试修改它以不显示负值,但它不起作用。
SELECT sportsID, newsID, cID, SUM(likes) AS totalLikes
FROM like_table
WHERE totalLikes > 0
GROUP BY sportsID, newsID
ORDER BY totalLikes DESC
有人可以帮忙吗?我不知道我做错了什么。
答案 0 :(得分:3)
尝试使用HAVING
子句:
SELECT sportsID, newsID, cID, SUM(likes) AS totalLikes
FROM like_table
GROUP BY sportsID, newsID
HAVING SUM(likes)> 0
ORDER BY totalLikes DESC
<强>解释强>
HAVING
子句已添加到SQL,因为WHERE
关键字无法与聚合函数一起使用。
WHERE
子句在所选列上放置条件,而HAVING
子句在由GROUP BY
子句创建的组上放置条件。
答案 1 :(得分:2)
WHERE totalLikes > 0
应为HAVING SUM(likes) > 0
并放在GROUP BY子句之后。因此:
SELECT sportsID, newsID, cID, SUM(likes) AS totalLikes
FROM like_table
GROUP BY sportsID, newsID
HAVING SUM(likes) > 0
ORDER BY totalLikes DESC