我的问题是关于百分比,我不是专家,所以我会尽力以更好的方式进行解释。
我的 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 |
+------+---------+----------+-------+
从这个结果我想得到:
-
这些年中每种语言出现的百分比
EN = 75% (3 is the total in this case)
PT = 25%
-
结果表中显示的每个国家/地区的出现百分比
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
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)