sql - 需要找到每个移动用户消耗的数据总和
问题描述
我有一个表格,其中包含下面提到的示例数据关于数据的说明 - 1. 数据包含日期、手机的 IMEI 号码、SIM NO(仅发送设备重启并发送为 null else)和百分比数据(剩余数据百分比) (如果在此期间关闭了设备数据,则可以为 null)。
我想用这张表实现的是找到每次数据充值之间消耗的数据量(您可以通过在列中看到 100 来观察充值)。例如,第一次充电是在 2020 年 3 月 4 日完成的,第二次充电是在 2020 年 3 月 12 日完成的,这次充电之间的总数据消耗为 100 - 73 = 27(减去第一次充电和最后一次充电)。这是百分比数字,我可以将其乘以 1024(假设数据以 MB 为单位)。我尝试了几个查询,但无法提出有效的查询。请帮我。
解决方案
使用累积和来定义区域,然后进行聚合。我将假设 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;
推荐阅读
- sql-server - 仅在日期时间列中显示日期然后将其转换为 Varchar 的最有效方法
- php - Laravel 护照 - 中间件 client_credentials 不记名令牌不起作用
- c++ - 如何使用析构函数删除在类构造函数中分配的动态内存
- splunk - 如何使用 Multisearch 在两个搜索查询之间进行交叉验证和计数
- angular - Angular,如何在没有更改检测问题的情况下将值从 HTML 模板传递到组件
- firebase - Facebook 登录弹出窗口不会显示在我的 React Native Expo 应用程序上(使用 Firebase)
- python - 如何在django的博客文章中指定用户?
- javascript - 拖动一个矩形并附加到相应的组
- azure-ad-b2c - B2C 自定义策略中的“CreateRandomString”函数问题
- python - 如何获取python中字符串出现的计数?