如何在MySQL中不显示负数?

时间:2014-05-03 15:51:51

标签: mysql sum

我有这个代码(它有效):

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

有人可以帮忙吗?我不知道我做错了什么。

2 个答案:

答案 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