目录
一、什么是窗口函数
窗口函数允许应用程序开发人员使用标准SQL命令轻松地组成复杂的联机分析处理(OLAP)查询。例如,使用窗口表达式,用户可以计算移动平均值或各种时间间隔的总和,在各个分组内重置聚合和排序,具体窗口分区在OVER()子句中定义。窗口分区是一组被组合在一起以应用窗口函数的行。与聚合函数不同,聚合函数为每组返回一个结果值,窗口函数为每一行返回一个结果值,但该值是针对特定窗口分区中的行计算的。如果未指定分区,则将在整个中间结果集上计算窗口函数。
二、例子
例如,在证券行业中,经常要根据股票交易的情况,实时统计全市场买入或者卖出股票数量最多的股东,或者按照股票代号进行分组,统计每只股票买入和卖出最多的股东,再做复杂的业务规则关联,看是否有违规交易等。我们将其业务简化,在成交表中存放股东的账号、股票代码、买入金额、卖出金额
然后分组统计全市场交易金融最大的10个股东和每只股票交易量最大的10个股东。
2.1 建表 & 导入数据
# create ta
                
                      
                          
                        
                            
                            
                          
                          
                            
本文介绍了Greenplum的窗口函数在证券行业中的应用,通过实例展示了如何利用窗口函数进行复杂查询,如统计全市场交易额最大股东和每只股票交易量最大股东。分析了原SQL执行计划的性能瓶颈,并提出改写方案,以提高查询效率。总结了窗口函数在业务中的重要性和优化技巧。
          
                  
                订阅专栏 解锁全文
                
            
      
          
                
                
                
                
              
                
                
                
                
                
              
                
                
                    
              
            
                  
被折叠的  条评论
		 为什么被折叠?
		 
		 
		
    
  
    
  
					
					
					


            