php - 使用MySQL和PHP统计一定范围内的数字的总结果

标签 php mysql

该项目的目标是检查文本区域字段的总字符数,并将转换率与历史数据进行比较。简单来说:X人输入了300个字符,我想看看之前输入260到340个字符之间的人的转化率。

这是一个有效的 MySQL 查询:

SELECT 
  COUNT(*) AS total_count, 
  SUM(converted) AS total_converted, 
  (SUM(converted) / count(*)) * 100 AS conversion_rate, text_length
FROM my_table WHERE text_length IS NOT NULL
GROUP BY text_length div 40

这适用于较小的数字,但在某个点(如超过 400 个字符),我想将它们全部放在一起。有没有办法检查“text_length”是否超过某个值,然后只计算超过它的所有内容?

此外,如果有人对更好的整体方法有任何建议,我也很乐意尝试。 谢谢!

最佳答案

使用 UNION,你可以这样做:

(SELECT 
  COUNT(*) AS total_count, 
  SUM(converted) AS total_converted, 
  (SUM(converted) / count(*)) * 100 AS conversion_rate, text_length
FROM my_table
WHERE text_length <= 400
GROUP BY text_length div 40)
UNION
(SELECT 
  COUNT(*) AS total_count, 
  SUM(converted) AS total_converted, 
  (SUM(converted) / count(*)) * 100 AS conversion_rate, 401 AS text_length
FROM my_table
WHERE text_length > 400)

请注意,我还删除了不再需要的 WHERE text_length IS NOT NULL。大于 400 的 text_lengths 将被分组为 text_length 401。

关于php - 使用MySQL和PHP统计一定范围内的数字的总结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9007561/

相关文章:

MySQL 通过复制物理文件来备份 MyISAM 表 - 并自动化该过程

java - 使用延迟加载时 Hibernate List 为空,但在热切加载时它有结果

php - 在 PHP 代码库中查找所有字符串

php - Symfony2 一种API两种认证方式

error-handling - PHP error_log错误到MySQL

mysql - mysql生成6位随机数

php - Mysql-如何从表中选择最后100条记录

MySQL SUM 和 CASE 可以在 DISTINCTROW 上使用吗?

php - 从 Google Drive 流式传输视频

php - 复杂的 Laravel 5 按集合分组