PHP MySql 百分比

标签 php mysql percentage

我的问题是关于百分比的,我不是专家所以我会尝试以更好的方式解释。

我的 mysql 服务器中有一个表,假设有 700 条记录,类似这样

+-------+---------+----------+-------+
| Name  | country | language | Birth |
+-------+---------+----------+-------+
| Lucy  | UK      | EN       | 1980  |
| Mari  | Canada  | FR       | 1990  |
| Gary  | Canada  | EN       | 1982  |
| Stacy | Jamaica | EN       | 1986  |
| Joao  | Brasil  | PT       | 1984  |
+-------+---------+----------+-------+

所以我查询了1980年到1985年之间的所有记录,结果是:

+------+---------+----------+-------+
| Name | country | language | Birth |
+------+---------+----------+-------+
| Lucy | UK      | EN       | 1980  |
| Gary | Canada  | EN       | 1982  |
| Joao | Brasil  | PT       | 1984  |
+------+---------+----------+-------+

从这个结果我想得到:

  1. 这些年之间每种语言出现的百分比

    EN = 75% (3 is the total in this case)
    PT = 25%
    
  2. 结果表中出现的每个国家/地区的百分比

    UK = 33%
    Canada = 33%
    Brasil = 33%
    

我的意思是如何将结果转换为变量以在最终函数中使用它们。

最佳答案

这可能行得通,但大致如下:

set @total_rows = (SELECT COUNT(*) FROM table WHERE Birth between 1980 and 1985);

SELECT language, percentage
FROM (
    SELECT language, concat(count(language)/@total_rows, "%") AS percentage 
    FROM table WHERE Birth between 1980 and 1985
)

关于PHP MySql 百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12728900/

相关文章:

MySQL IF 语句检查表是否为空

php - 如果表A中的记录不存在于表B中做某事,我将如何去做呢?

php - 在PHP上更新yum之后的语法错误

php - Code Igniter : Js file is included successfully, 脚本不工作

php - 插入具有更高顺序值的新行时,如何更改表中的顺序值?

r - 如何计算数据框中以 R 中的序列开头的单元格百分比?

php - 使用嵌套 map 更新 DynamoDB 项目的正确示例

mysql - 明智地在mysql记录中连接字符串

php - 在 Laravel 中创建星级百分比

Matlab 投币模拟