sql - SQL:我如何通过只有直接位于其正下方的 null 的 id 进行分组?
问题描述
我如何按 id 分组,只有 null 直接位于它的正下方。然后得到时间的总和?
ID time
1 time1
null time1
null time1
null time1
2 time1
null time1
null time1
3 time1
null time1
null time1
想要的结果
ID time
1 sumTime
2 sumTime
3 sumTime
解决方案
SQL 表表示无序集。为了让你做你想做的事,你需要一个指定排序的列。一旦你有了它,你可以通过计算非空值的累积数量id
并聚合来识别组:
select id, sum(time)
from (select t.*,
count(id) over (order by <ordering col>) as grp
from t
) t
group by id;
如果您没有排序列,则您的问题没有意义,因为该表是无序的。
推荐阅读
- arrays - 将 SINGULAR 字符输入到数组
- python - 单点交叉功能不循环工作
- apache-spark - 添加新的数组类型列时引发 UDF 问题
通过转换现有列之一 - c# - 如何为验证规则的默认工具提示制作自定义模板?
- python - 使用solve_ivp 没有得到正确的解决方案
- excel-formula - 试图创建一个 Excel 产品公式手册到动态
- javascript - 通过Javascript ArcGIS Api绘制折线时如何获取特定区域的医院或街道名称?
- android - 从工具栏中的 sqlite 检索当前登录用户
- javascript - 如何使用 Node.js 获取 Redis 中的连接数?
- flutter - 如何使 FCM 通知在颤动中不可移除?