Необходимо найти сумму данных, потребляемых для каждого мобильного пользователя - PullRequest
0 голосов
/ 04 марта 2020

У меня есть таблица, которая содержит примеры данных, упомянутых ниже. Объяснение о данных - 1. Данные содержат дату, номер IMEI мобильного телефона, номер SIM-карты (который отправляется только для перезапускаемого устройства и отправляется как нулевое значение) и данные в процентах (оставшиеся данные в процентах) (может быть нулевым, если данные устройства были отключены в течение этого времени). enter image description here

Что я хочу достичь с помощью этой таблицы, так это найти объем данных, потребляемых между каждым пополнением данных (вы можете наблюдать пополнение, увидев 100 в столбце). Так, например, первая перезарядка была сделана 3/4/20, а вторая перезарядка была сделана 3/12/20, и общее потребление данных между перезарядками составляет 100 - 73 = 27 (вычитая первое при перезарядке и последнее из этого перезарядки). Это процентное число, я могу умножить его на 1024 (при условии, что данные в МБ). Я пробовал несколько запросов, но не смог придумать эффективный запрос. Пожалуйста, помогите мне.

1 Ответ

1 голос
/ 04 марта 2020

Используйте накопленную сумму, чтобы определить регионы, а затем агрегирование. Я собираюсь принять BigQuery:

select imei, min(date) as recharge_date, max(date) as last,
       max(data_usage) - min(data_usage) as data_consumed
from (select t.*,
             countif(data_usage = 100) over (partition by imei order by date) as grp
      from t
     ) t
group by imei, grp;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...