Привет, у меня есть таблица 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. Но мне интересно знать, смогу ли я сделать это одним запросом. Например, где "article_user_rating> 0" в SUM (). Я уверен, что я видел что-то подобное, сделанное ранее, но я не могу найти никакой документации по этому вопросу.