gpt4 book ai didi

sql - 具有计数和总和的单个 MySQL 查询

转载 作者:行者123 更新时间:2023-11-29 02:37:47 27 4
gpt4 key购买 nike

您好,我有一个如下所示的 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 hitsFROM article_visitedWHERE article_visited_article_id =1GROUP BY article_visited_user_id

我的问题是,如果用户未对文章进行评分,则评分可能为 0 或 NULL。但是,为了获得平均评分,我需要将所有非 0 或 NULL 的评分相加,然后除以评分总数。

我可以通过使用 where 子句的两个查询轻松地做到这一点。但我很想知道我是否可以在一个查询中完成。例如 SUM() 中的“article_user_rating > 0”。我确定我以前见过类似的操作,但我找不到任何相关文档。

最佳答案

您可以扩展 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

关于sql - 具有计数和总和的单个 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2413553/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com