PHP MySql百分比

And*_*día 8 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  |
+-------+---------+----------+-------+
Run Code Online (Sandbox Code Playgroud)

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

+------+---------+----------+-------+
| Name | country | language | Birth |
+------+---------+----------+-------+
| Lucy | UK      | EN       | 1980  |
| Gary | Canada  | EN       | 1982  |
| Joao | Brasil  | PT       | 1984  |
+------+---------+----------+-------+
Run Code Online (Sandbox Code Playgroud)

从这个结果我想得到:

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

    EN = 75% (3 is the total in this case)
    PT = 25%
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在结果表中看到的每个国家/地区的外观百分比

    UK = 33%
    Canada = 33%
    Brasil = 33%
    
    Run Code Online (Sandbox Code Playgroud)

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

Mik*_*osh 1

这可能有效,但大致如下:

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
)
Run Code Online (Sandbox Code Playgroud)