Как рассчитать этот процент в sql? - PullRequest
0 голосов
/ 24 апреля 2020

У меня два запроса:

SELECT SUM(column1) AS Result_All FROM table;
SELECT SUM(column1) AS Result_Something FROM table WHERE column2 LIKE '%something%';

Первый дает сумму столбца 1.
Допустим, результат равен 10.000.

Второй дает сумму столбца 1, где column2 равно% что-то%.
Допустим, результат равен 2.000.

Как я могу сделать эти два запроса в 1 и вычислить как сколько процентов составляет запрос2 к запросу1? Если результат равен 10.000 и 2.000, процент должен быть 20%.

Редактировать: «AS» мне не нужен, я просто написал, чтобы помочь, что это такое.

Ответы [ 2 ]

2 голосов
/ 24 апреля 2020

Простейшим методом является условное агрегирование:

SELECT SUM(CASE WHEN column2 LIKE '%something%' THEN column1 END) / SUM(column1) AS ratio
FROM table;

Вы можете умножить на 100, если хотите, чтобы число было от 0 до 100 вместо 0 и 1. Лично я предпочитаю соотношение.

1 голос
/ 24 апреля 2020

Вы можете выполнить условное агрегирование:

select sum(case when column2 like '%something%' then column1 end) / sum(column1) ratio
from mytable

Это дает десятичное число от 0 до 1, которое вы можете умножить на 100, если хотите процент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...