【问题标题】:mysql select that calculates percentagemysql select计算百分比
【发布时间】:2015-10-07 02:42:23
【问题描述】:

我有一个表,其中计数作为字段,用户名作为另一个字段。通过使用此查询,我设法获得了当月所有记录的总数:

select count(*) 
from forms 
where Month(date) = MONTH(CURDATE()) 
    AND YEAR(CURDATE());

我还设法通过此查询获取个人用户条目:

select u_name, count(*) AS numb 
from forms 
where Month(date) = MONTH(CURDATE()) 
    AND YEAR(CURDATE()) 
GROUP BY U_name 
ORDER BY numb DESC;`

所以...第一个给了我类似“12”的信息...换句话说,10 月份输入了 12 条记录(假设)。第二个查询给了我类似的东西:

约翰 5 玛丽 7

我正在苦苦挣扎的是一个查询,它会给我每个用户条目的百分比......即约翰的百分比是 41%。 12 个条目中的 5 个。

希望我很清楚....感谢您的帮助。

【问题讨论】:

  • 你需要使用子查询来做你想做的事。这不是世界上最简单的事情,但它会奏效!
  • 这之前的一些类似的解决方案是否有帮助:stackoverflow.com/questions/15746749/mysql-calculate-percentage
  • 你是否在AND YEAR(CURDATE()) 中遗漏了一些东西——不应该将其与某些东西进行比较吗?
  • 您提到您有一个名为count 的字段。你想如何在查询中使用它?

标签: php mysql


【解决方案1】:

使用分组查询加入计算总数的查询。

SELECT u_name, COUNT(*) AS numb, COUNT(*)*100/total AS pct
FROM forms
CROSS JOIN (SELECT COUNT(*) AS total
            FROM forms
            WHERE MONTH(date) = MONTH(NOW()) AND YEAR(date) = YEAR(NOW())) AS x
WHERE MONTH(date) = MONTH(NOW()) AND YEAR(date) = YEAR(NOW())

【讨论】:

  • 巴玛做到了。谢谢!我只需要弄清楚如何减少小数点,因为它给我的结果是 44.444 但除此之外,谢谢大家!!!
猜你喜欢
  • 2016-09-26
  • 2013-03-22
  • 2013-11-15
  • 2022-01-23
  • 2012-09-20
  • 2012-04-05
  • 2011-06-01
  • 2021-01-10
相关资源
最近更新 更多