使用分析功能时进行分组

丹尼尔

假设我们有一个看起来像这样的表:

Level|Depth|Descrip|  
  0  |  0  | Base    |  
  1  |  50 | Level_1 |  
  2  |  53 | Level_2 |  
  3  |  60 | Level_3 |  
  8  |  80 | Level_8 |  
  10 |  81 | Level_10|    
  15 | 101 | Level_15|  
  16 | 102 | Level_16|  
  17 | 102 | Level_16_bis|  
  18 | 103 | Level_17|  

首先,我需要获得代表之前(相比15 mts)深度跳变的行。我让那些行做这样的事情:

Select level,depth, descrip from(
    Select level
    , depth
    ,lag(depth) over (order by level asc) as prev_depth
    , descrip
    from ground_levels
    )
Where abs(depth-prev_depth) > 15 and depth > 0 

给我这样的一张桌子:

Level|Depth|Descrip|  
  1  | 50  | Level_1|  
  8  | 80  | Level_8|  
 15  | 101 | Level_15|

现在,我需要收集两次跳跃之间的水平。所以,我需要这样的东西:

Level|Depth| Descrip | Equivalent_levels |  
  1  | 50  | Level_1 |     2,3           |  
  8  | 80  | Level_8 |     10            |  
 15  | 101 | Level_15|     16,17,18      |  

我正在做一些有关使用“ listagg”,rank()和其他分析功能的搜索,但是我对脚本:(

另外,如果我可以在满足以下条件时开始分组,那就很棒了:abs(depth-prev_depth)> 15,这样我就可以得到类似的信息:

Level|Depth|Descrip  | Group_ID   
  1  |  50 | Level_1 |  1  |  
  2  |  53 | Level_2 |  1  |  
  3  |  60 | Level_3 |  1  |  
  8  |  80 | Level_8 |  2  |  
  10 |  81 | Level_10|  2  |  
  15 | 101 | Level_15|  3  |  
  16 | 102 | Level_16|  3  |  
  17 | 102 | Level_16_bis| 3  |   
  18 | 103 | Level_17|   3   |  

有任何想法吗 ??

PS:对不起,我的英语不好...

戈登·利诺夫

您可以使用累积和定义组。然后聚合:

Select min(level) as level,
       min(depth) keep (dense_rank first order by level) as depth,
       min(descrip) keep (dense_rank first order by level) as descrip,
       list_agg(level, ',') within group (order by level) as levels
from (select gl.*,
             sum(case when abs(prev_depth - depth) > 15 and depth > 0 then 1 else 0 end) over (order by level) as grp
      from (select gl.*, lag(depth) over (order by level asc) as prev_depth
            from ground_levels
           ) gl
     ) gl
group grp;

实际上,这会将起始级别保留在列表中。可以将其删除,但这需要更多的工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无需使用分析进行分组的自连接

来自分类Dev

使用gprof2dot进行分析时隐藏功能的详细描述

来自分类Dev

使用功能时按Sequelize分组

来自分类Dev

按大小分组时无效使用分组功能

来自分类Dev

Apache Scala / Python Spark 2.4.4:按年份范围对数据进行分组以生成/分析新功能

来自分类Dev

使用窗口功能对记录分组进行排序并选择最小值时,如何删除重复项?

来自分类Dev

使用apply / apply功能自动进行统计分析

来自分类Dev

使用Maxent模型进行情感分析的功能

来自分类Dev

使用最大功能而不进行分组

来自分类Dev

使用Google表格查询功能对数据进行分组

来自分类Dev

如何使用用户定义的功能进行分组?

来自分类Dev

在进行PCA和聚类分析时保持与观察值相关联的分组变量的实用方法

来自分类Dev

带有分组依据的 Oracle 分析功能

来自分类Dev

在Excel VBA中使用SQL“分组依据”功能对数据进行分组

来自分类Dev

使用nvprof进行分析时没有GPU活动

来自分类Dev

使用FluentAPI和代码优先功能在EF6的DbContext中进行功能分组

来自分类Dev

使用FluentAPI和代码优先功能在EF6的DbContext中进行功能分组

来自分类Dev

使用窗口功能而不是两个窗口功能进行分组

来自分类Dev

使用自定义变量对Google Analytics(分析)中的事件进行分组

来自分类Dev

在 UNION ALL 上使用 GROUP BY 时未对结果进行分组

来自分类Dev

使用NumPy进行分析?

来自分类Dev

使用regexec进行分组

来自分类Dev

用Cython进行线性分析内部功能

来自分类Dev

在Python中对相关功能进行分组

来自分类Dev

为使用keras进行预测添加新功能时出错

来自分类Dev

使用split功能按因子对数据帧进行分组,替代大型数据帧

来自分类Dev

如何使用Windows功能将付款的每个部分按付款的最短日期进行分组

来自分类Dev

如何使用lodash groupby或其他功能对以下数据进行分组?

来自分类Dev

熊猫:分组使用多个功能

Related 相关文章

  1. 1

    无需使用分析进行分组的自连接

  2. 2

    使用gprof2dot进行分析时隐藏功能的详细描述

  3. 3

    使用功能时按Sequelize分组

  4. 4

    按大小分组时无效使用分组功能

  5. 5

    Apache Scala / Python Spark 2.4.4:按年份范围对数据进行分组以生成/分析新功能

  6. 6

    使用窗口功能对记录分组进行排序并选择最小值时,如何删除重复项?

  7. 7

    使用apply / apply功能自动进行统计分析

  8. 8

    使用Maxent模型进行情感分析的功能

  9. 9

    使用最大功能而不进行分组

  10. 10

    使用Google表格查询功能对数据进行分组

  11. 11

    如何使用用户定义的功能进行分组?

  12. 12

    在进行PCA和聚类分析时保持与观察值相关联的分组变量的实用方法

  13. 13

    带有分组依据的 Oracle 分析功能

  14. 14

    在Excel VBA中使用SQL“分组依据”功能对数据进行分组

  15. 15

    使用nvprof进行分析时没有GPU活动

  16. 16

    使用FluentAPI和代码优先功能在EF6的DbContext中进行功能分组

  17. 17

    使用FluentAPI和代码优先功能在EF6的DbContext中进行功能分组

  18. 18

    使用窗口功能而不是两个窗口功能进行分组

  19. 19

    使用自定义变量对Google Analytics(分析)中的事件进行分组

  20. 20

    在 UNION ALL 上使用 GROUP BY 时未对结果进行分组

  21. 21

    使用NumPy进行分析?

  22. 22

    使用regexec进行分组

  23. 23

    用Cython进行线性分析内部功能

  24. 24

    在Python中对相关功能进行分组

  25. 25

    为使用keras进行预测添加新功能时出错

  26. 26

    使用split功能按因子对数据帧进行分组,替代大型数据帧

  27. 27

    如何使用Windows功能将付款的每个部分按付款的最短日期进行分组

  28. 28

    如何使用lodash groupby或其他功能对以下数据进行分组?

  29. 29

    熊猫:分组使用多个功能

热门标签

归档