为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【概述】 场景 + 问题概述
 使用sum() over()开窗函数报错,而在mysql 8.0下可以正确执行
【背景】 做过哪些操作
【现象】 业务和数据库现象
【问题】 当前遇到的问题,参考 AskTUG 的 Troubleshooting 读性能慢-慢语句 
【统计信息是否最新】
    【执行计划内容】
    【 SQL 文本、schema 以及 数据分布】
    简化后的sql样本
     create table cux_sum_test(amt bigint,name varchar(500));
    insert into cux_sum_test values(1,'a');
    insert into cux_sum_test values(3,'b');
    insert into cux_sum_test values(4,'c');
select
  t2.name
 ,sum(t2.sum_amt) over() sum_amt2
,sum_amt
from
【业务影响】
目前有相当多类似的sql写法,如果不能正常支持需要大量改造
【TiDB 版本】
【附件】 相关日志及监控(https://metricstool.pingcap.com/ )
TiUP Cluster Display 信息 
TiUP CLuster Edit config 信息 
TiDB-Overview Grafana监控 
TiDB Grafana 监控 
TiKV Grafana 监控 
PD Grafana 监控 
对应模块日志(包含问题前后 1 小时日志) 
 
             
            
              2 个赞 
            
           
          
            
              
                yilong  
                
                  
                    2021 年6 月 25 日 01:42
                   
                  2 
               
             
            
              测试了一下 v5.0.2 可以正确执行,方便升级到 v5.0.2 吗?
             
            
              1 个赞 
            
           
          
            
            
              
             
            
              
           
          
            
              
                Kongdom  
              
                  
                    2021 年6 月 25 日 02:14
                   
                  4 
               
             
            
              在最外层添加 group by t2.name,sum_amt 试试
             
            
              1 个赞 
            
           
          
            
            
              STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
config 配置:
global:
host: 192.168.18.93 
host: 192.168.18.93 
host: 192.168.18.94 
 
             
            
              
           
          
            
              
                yilong  
              
                  
                    2021 年6 月 25 日 02:22
                   
                  8 
               
             
            
              新建session 设置 only_full_group_by 试试。
             
            
              
           
          
            
            
              我使用dberver7.2.1连接发现会报错,换成navicat15.0.25执行sql没问题,会是驱动导致的吗
             
            
              
           
          
            
            
              您好,现在代码里跑也有同样的问题
             
            
              
           
          
            
              
                Kongdom  
                
                  
                    2021 年6 月 25 日 03:08
                   
                  14 
               
             
            
              解决方案
原因未找到,explain analyze的结果基本一致。@yilong 
             
            
              2 个赞 
            
           
          
            
            
              hi 这个调整字段顺序的原则是什么呢? 或者是参考什么规范来调整呢
             
            
              
           
          
            
              
                Kongdom  
              
                  
                    2021 年6 月 25 日 04:00
                   
                  17 
               
             
            
              我只是在转换写法的过程中,不小心发现调整顺序能够解决。具体还是需要官方检查实际原因。
             
            
              1 个赞 
            
           
          
            
            
              您好,刚才测试原始sql,通过jdbc跑和通过Navicat跑,发现在dashboard中有些差异
SELECTr.app,r.begin_status_base,r.end_status_base,r.is_default,round (r.count) = ? THEN ?r.count) / sum (sum (r.count)) over (r.app,r.matrix_name,r.begin_status_base,r.pd_setavg_rate,r.matrix_name,pd_setsr.*hrrf_transmatrix_sr sr,hrrf_transmatrix_def defsr.matrix_name = def.matrix_namedef.app = ?sr.app = ?def.cal_method = ?rr.app,r.matrix_name,r.begin_status_base,r.end_status_base,r.is_default,r.pd_set
这是通过jdbc跑的sql信息,与navicat跑的相比,多了下面的’ limit … ’
             
            
              
           
          
            
            
              
好像问题就是因为这个limit导致的,去掉可以正常查询到结果