@Nastya97

Как построить запрос в MySQL, чтобы рассчитать проценты?

Здравствуйте, помогите, пожалуйста, с запросом! Заранее благодарю!

Существует таблица: Users
Таблица содержит столбцы:
1) Country (Страна, в которой проживает клиент)
2) ClientID (уникальный ID аккаунта клиента)
3) RegistrationDate (Дата регистрации).

Мне необходимо вывести следующие строки:
1) Страна - Сountry
2) Кол-во человек - Count(ClientID) кол-во юзеров из страны, группированных по стране group by nationality
3) и процентное соотношение

Есть условие - это определенная дата и сортировка DESC юзеров по кол-ву юзеров.
{то есть
where from_unixtime(RegistrationDate/1000) > '2020-10-19 00:00:00'
and from_unixtime(RegistrationDate/1000) < '2020-10-20 00:00:00' order by count(ClientID) desc}

ОБЫЧНО запрос строю следующим образом:
select Country, count(ClientID) from Users
where from_unixtime(RegistrationDate/1000) > '2020-10-19 00:00:00' and from_unixtime(RegistrationDate/1000) < '2020-10-20 00:00:00'
group by nationality
order by count(ClientID) desc

Однако мне нужен запрос, который будет выводить 3-й столбец с процентным соотношением по кол-ву зарегистрированных юзеров от страны (то есть наподобие того, что я покажу ниже).

5f8ee96a055a9755571468.jpeg

Заранее благодарю.
  • Вопрос задан
  • 60 просмотров
Пригласить эксперта
Ответы на вопрос 1
Bavashi
@Bavashi
select Country, Amount, ((Amount*100)/(select count(ClientID) from Users)) Persent
from
(
select Country, count(ClientID) Amount
from Users
where from_unixtime(RegistrationDate/1000) > '2020-10-19 00:00:00' and from_unixtime(RegistrationDate/1000) < '2020-10-20 00:00:00'
group by nationality
order by count(ClientID) desc
) t;
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы