查询当前投票数

您好,我是 SQL 新手。

我想获取一个列表,显示“有多少用户”投了“多少票”。在我们的实例中,每人最多可以投 10 票。结果表将如下所示:

票数 用户数
10 25
9 32
8 43
(等等)

这是我的第一个 SQL 查询,目前我只做到了这一步:

SELECT user_id, count(user_id)
FROM discourse_voting_votes
GROUP BY user_id
ORDER BY count DESC

这会返回一个按投票数排序的用户列表。至少这样我就可以手动计算出想要的结果,但这很麻烦且容易出错。

2 个赞

恐怕这也是我的第一个 SQL 查询,所以我们来看看效果如何…… :slightly_smiling_face: 但这有帮助吗?

WITH votes AS (
    SELECT user_id, count(user_id) as Number_of_Votes
    FROM discourse_voting_votes dvv
    WHERE dvv.archive = false
    GROUP BY user_id
    ORDER BY Number_of_Votes DESC
)
SELECT Number_of_Votes, count(*) AS Number_of_Users
FROM votes
GROUP BY Number_of_Votes
ORDER BY Number_of_Votes DESC
3 个赞

太棒了!非常感谢你!感谢提供的脚本和简短的 SQL 课程。希望这对你也有所帮助。

我相信这个查询对其他人也会很有用。在我们的案例中,我们希望展示投票的分布情况,以便我们的志愿者能够更清楚地了解与其他同行相比,他们使用了多少/多少较少的投票。最终目标是增加投票的使用数量。

3 个赞

我很高兴它奏效了。:+1: 我一直想练习使用数据浏览器,这似乎是一个绝佳的机会,所以应该是我感谢你。:slightly_smiling_face:

我添加了“archive = false”行,将结果限制为用户当前的投票总数,不包括历史记录。我认为这符合你的用例,但如果你想要一个“总计”,可以将其删除。

再次感谢。:+1::slightly_smiling_face:

2 个赞

啊,我不知道这是什么。是的,这符合我正在寻找的查询。再次感谢您,我们已经在使用了这些数据。

1 个赞

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.