Как разделить таблицу, чтобы получить результат ниже? - PullRequest
0 голосов
/ 28 февраля 2020

У меня есть таблица 1 с

 msisdn_b  msisdn_a  event 
 1111      222      0 
 1111      333      0 
 1111      777      1 
 2222      567      0 
 2222      571      1 
 2222      572      1 

И я хочу получить результат, подобный таблице 2, где я делю сумму вхождений на количество вхождений для каждого msisdn_b.

msisdn_b  event_rate  
1111      0,333333333 
2222      0,666666667 

Использую ли я раздел по предложению? или группы по будет достаточно?

1 Ответ

0 голосов
/ 28 февраля 2020

Просто используйте агрегирование:

select msisdn_b, avg(event * 1.0)
from t
group by msisdn_b;

* 1.0 просто потому, что некоторые базы данных вычисляют целочисленные средние значения - поэтому результатом является целое число, а не число с десятичными знаками. Ваша база данных может вести себя не так.

...