sql - 选择具有不同值的行的百分比

标签 sql mysql

在我运行的网站上,我让用户对各个帖子进行评分(3、2、1)。我使用以下 SQL(在 MySQL 中)来获取每个值的投票百分比:

SELECT vote, COUNT(*) * t.factor AS pct
FROM ratings
JOIN (
    SELECT 100 / COUNT(*) AS factor
    FROM ratings
) AS t
GROUP BY vote
LIMIT 0, 30;

这对于计算整个表的行百分比来说效果很好。现在,我需要特定帖子的百分比,该帖子在表中由“id”列标识。我该怎么做?

最佳答案

这个问题似乎有点误导......但这就是我想象的样子。

SELECT vote, COUNT(*) * t.factor AS pct
FROM ratings
JOIN (
SELECT 100 / COUNT(*) AS factor
FROM ratings
where id = id of the post
) AS t
where id = id of the post
GROUP BY vote

关于sql - 选择具有不同值的行的百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1121850/

相关文章:

mysql - 如何有效地计算 MySQL 中的序列中断/漏洞?

mysql - 在一个 SQL 查询中将记录的值替换为不同的值

mysql - Arvixe 上的 MVC4 发布网站出现错误

sql - postgresql 中的 IF-THEN-ELSE 语句

mysql - 获取两个事物同时出现的日期(mysql查询)

mysql - 基于两个日期时间字段的查询

mysql - DBeaver 与 MySQL 的连接

sql - 了解With查询操作

sql - Flutter - SQL 如何返回普通值

asp.net - Simplemembership - 添加电子邮件字段并用作登录名