gpt4 book ai didi

mysql - 连接表,如果百分比高于特定值

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

我的问题和这个类似: Compare rows and get percentage

不过,有点不同。我将我的问题修改为另一篇文章。

我有 2 个表。

第一个表:

user_id | post_id
1 1
1 2
1 3
2 12
2 15

第二个表:

post_id | rating
1 1
1 2
1 3
2 1
2 5
3 1
3 1
3 4
12 4
15 1

所以现在我想在第二个表中计算每个帖子的评分。如果评分超过,比方说,50% 的正面评分,我想获取 post_id 并将其转到表 1 中的 post_id,并将 1 加到 user_id。

最后它会返回包含正面帖子数量的 user_id。

上表的结果为:

user_id | helpfulPosts
1 2
2 1

post_id 为 1 和 3 的帖子具有正面评分,因为超过 50% 的帖子评分为 1-3。 id = 2 的帖子不是正面的,因为评分恰好是 50%。

我将如何实现这一目标?

澄清一下:这是一个 mysql rdbm 和一个积极的帖子,其中带有 1、2 和 3 的 rating_ids 的数量超过了整体评级的一半。基本上是同一件事,来 self 上面发布的另一个线程。

忘了一件事:也有可能在 posts 表中存在一个 post_id,但在 ratings_table 中没有对它的评级。这些帖子也很有帮助。null 作为评级的情况,是我这边的误解。

最佳答案

试试这个解决方案:

SELECT
a.user_id,
COUNT(1) AS helpfulPosts
FROM
posts a
LEFT JOIN
(
SELECT
post_id,
COUNT(CASE WHEN rating IN (1,2,3) OR rating IS NULL THEN 1 END) / COUNT(1) AS percent_positive
FROM ratings
GROUP BY post_id
) b ON a.post_id = b.post_id
WHERE
b.post_id IS NULL OR
b.percent_positive > 0.5
GROUP BY
a.user_id

SQL-Fiddle Demo

^ 请注意,我向 user_id 1 添加了没有评分的帖子,这些帖子被计入用户的 helpfulPosts

关于mysql - 连接表,如果百分比高于特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11386654/

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