请问有没有哪位知道为什么呢?



 
发件人: [email protected]
发送时间: 2020-09-29 12:08
收件人: [email protected]
主题: 【求助!】sql报错问题
各位大大好,
    我有一个让我非常困惑的问题
    像下面这个sql,执行的时候会报错。
    

    select
        T59780.F1126 as F59781,
        '_Insight_Total' as F59782,
        case
            when ( sum(T59780.F1152) - sum(T59780.F1163) ) = 0 then 0
            else ( sum(case
                when T59780.F1169='1' then T59780.F1165
                else 0
            end) + sum( case
                when T59780.F1169='1' then T59780.F1167 + T59780.F1168
                else 0
            end) ) / ( sum(T59780.F1152) - sum(T59780.F1163) )
        end as F59783
    from
        (select
            T1199.COMNAME1 as F1112,
            T1198.PT as F1126,
            T1198.CHGNTPREMIUM as F1152,
            T1198.NODUTYNTPREMIUM as F1163,
            T1198.CATASTROPHEFLAG as F1169,
            T1198.YJ_SUMLOSS as F1165,
            T1198.WJ_SUMLOSS as F1167,
            T1198.WJ_SUMCLAIM as F1168
        from
            STAT_NOCAR_ADS_HIVE.ADS_PROP_STATEMENT_DF T1198
        left outer join
            STAT_NOCAR_DIM_HIVE.DIM_NOCAR_COMPANYLEVEL T1199
                on T1198.COMCODE = T1199.COMCODE
        where
            T1199.COMCODE1 IN (
                '05000000'
            )
            and T1198.PT ='2020-08-30') T59780
    group by
        T59780.F1126   

    报错信息见附件。
    
    但是当我在这个sql后面加上“limit 100000”,就可以通过jdbc正常执行了。
    
    sql如下:
    

    select
        T59780.F1126 as F59781,
        '_Insight_Total' as F59782,
        case
            when ( sum(T59780.F1152) - sum(T59780.F1163) ) = 0 then 0
            else ( sum(case
                when T59780.F1169='1' then T59780.F1165
                else 0
            end) + sum( case
                when T59780.F1169='1' then T59780.F1167 + T59780.F1168
                else 0
            end) ) / ( sum(T59780.F1152) - sum(T59780.F1163) )
        end as F59783
    from
        (select
            T1199.COMNAME1 as F1112,
            T1198.PT as F1126,
            T1198.CHGNTPREMIUM as F1152,
            T1198.NODUTYNTPREMIUM as F1163,
            T1198.CATASTROPHEFLAG as F1169,
            T1198.YJ_SUMLOSS as F1165,
            T1198.WJ_SUMLOSS as F1167,
            T1198.WJ_SUMCLAIM as F1168
        from
            STAT_NOCAR_ADS_HIVE.ADS_PROP_STATEMENT_DF T1198
        left outer join
            STAT_NOCAR_DIM_HIVE.DIM_NOCAR_COMPANYLEVEL T1199
                on T1198.COMCODE = T1199.COMCODE
        where
            T1199.COMCODE1 IN (
                '05000000'
            )
            and T1198.PT ='2020-08-30') T59780
    group by
        T59780.F1126    limit 100000

    我找了许久资料,也没明白是为什么。难道是我使用的kylin版本的bug吗?
    非常期待您的来信~感谢!



Jaylin

Reply via email to