您好我有一个如下所示的SQL表:
CREATE TABLE IF NOT EXISTS `designerswave_article_visited` ( `article_visited_article_id` smallint(5) NOT NULL, `article_visited_user_id` smallint(5) NOT NULL, `article_user_rating` tinyint(1) DEFAULT NULL, UNIQUE KEY `article_id` (`article_visited_article_id`,`article_visited_user_id`) )
一个看起来像这样的查询:
SELECT SUM(article_user_rating) AS total_rating, COUNT(article_visited_user_id) AS hits FROM article_visited WHERE article_visited_article_id =1 GROUP BY article_visited_user_id
我的问题是如果用户没有对文章进行评级,评级可能为0或NULL。然而,为了获得平均评级,我需要将所有不是0或NULL的评级相加并除以评级总数。
我可以使用where子句轻松完成两个查询。但是我很想知道我是否可以在一个查询中完成它。例如SUM()中的“article_user_rating> 0”。我确定我以前见过类似的东西,但我找不到任何文件。
答案 0 :(得分:2)
你可以扩展where子句,但正如Chad所说,我不确定这是否真的是你想要的:
SELECT SUM(article_user_rating) AS total_rating, COUNT(article_visited_user_id) AS hits
FROM article_visited
WHERE article_visited_article_id =1 and article_user_rating > 0
GROUP BY article_visited_user_id
答案 1 :(得分:0)