您好我有一個看起來像這樣的SQL表:單MySQL查詢與數量和金額有
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()中的where「article_user_rating> 0」。我確定我以前見過類似的東西,但我找不到任何文檔。
我很困惑,你選擇了一個特定的'article_visited_article_id'(1),並用'article_visited_user_id'分組,但是這兩列的組合是表格上的一個唯一鍵,所以這意味着你會只有每行用戶都有一行。 'GROUP BY'永遠不會分組任何行。 你究竟想要選擇什麼?某篇文章的平均評分? – 2010-03-10 00:12:56