Как посчитать процентное соотношение значений?

615 просмотра
0
0 Комментариев

Дан массив текстовое значение — количество:

[('21', 1), ('25', 1), ('28', 1), ('31', 1), ('Данных нет', 14)]

Нужно посчитать каков процент каждого значения в общем. Результат должен быть такой:

['21', '1 / (1 + 1 + 1 + 1 + 14)'; '25', '1 / (1 + 1 + 1 + 1 + 14)'; '28', '1 / (1 + 1 + 1 + 1 + 14)'; '31', '1 / (1 + 1 + 1 + 1 + 14)'; 'Данных нет', '14 / (1 + 1 + 1 + 1 + 14)']

где 1/18 - это расчет процентов.

Есть вот такое представление на SQL:

CREATE
    ALGORITHM = UNDEFINED
    DEFINER = `user`@`%`
    SQL SECURITY DEFINER
VIEW `users_by_age` AS
    SELECT
        `list_of_users`.`age` AS `age`, COUNT(0) AS `number`
    FROM
        `list_of_users`
    GROUP BY `list_of_users`.`age`

Можно добавить еще 1 столбик, но как — вопрос.


Добавить комментарий

2 Answers

Python Опубликовано 12.12.2018
0
  1. Посчитать общую сумму членов (18).
  2. Для каждой группы, поделить сумму входящих в нее членов на общую сумм — вот ваш процент.

На SQL это будет прмерно так же. Считайте сумму в переменной первым запросом, а вторым — выводите по группам деленым на найденную сумму.

Добавить комментарий
0

Оказалось все просто:

for a in age:
    res_a = round((int(a[1])/count * 100),2)
    print(res_a)

Добавить комментарий
Напишите свой ответ на данный вопрос.
Scroll Up