包含Group By的配置单元子查询 我是蜂巢的新手,但我认为自己是SQL的中间人。我得到的错误如下所示。我尝试过更改、添加、删除括号及其位置,以及添加和删除子查询别名。似乎没有什么能消除这个错误。谢谢你的帮助 org.apache.hive.service.cli.HiveSQLException: Error while compiling statement: FAILED: ParseException line 16:11 missing ) at 'testing' near ')' in expression specification

包含Group By的配置单元子查询 我是蜂巢的新手,但我认为自己是SQL的中间人。我得到的错误如下所示。我尝试过更改、添加、删除括号及其位置,以及添加和删除子查询别名。似乎没有什么能消除这个错误。谢谢你的帮助 org.apache.hive.service.cli.HiveSQLException: Error while compiling statement: FAILED: ParseException line 16:11 missing ) at 'testing' near ')' in expression specification,hive,Hive,子查询和额外查询中缺少SELECT。参见代码中标记为-1、2和3的注释: SELECT bcity, bstate FROM( SELECT bcity, bstate, DENSE_RANK() OVER (ORDER BY total_double_triples DESC) as ranked FROM ( SELECT bcity, bstate, SUM(doubles+triples) as total_double_triples

子查询和额外查询中缺少SELECT。参见代码中标记为-1、2和3的注释:

SELECT bcity, bstate FROM( 
    SELECT bcity, bstate, DENSE_RANK() OVER (ORDER BY total_double_triples DESC) as ranked 
        FROM 
        ( SELECT  bcity, bstate, SUM(doubles+triples) as total_double_triples 
            FROM
            (--There should be SELECT ... FROM ---------------------------------- 1st 
                ( ----------Remove this line ------------------------------------ 2nd
                  (SELECT id as b_id, doubles, triples 
                    FROM batting) batting_data 
                JOIN 
                (SELECT id, bcity, bstate 
                    FROM master 
                    WHERE NOT ISNULL(bcity) AND NOT ISNULL(bstate)
                ) master_join
                    ON master_join.id = batting_data.b_id ) --Remove extra)------3rd
            ) testing GROUP BY (bcity, bstat)
        ) total_group_by  
    ) subquery  WHERE subquery.ranked <= 5 ;

必须删除GROUPBY语句之前的别名,并修复bstate字段名中的类型。感谢所有提出的解决方案

SELECT bcity, bstate FROM( 
    SELECT bcity, bstate, DENSE_RANK() OVER (ORDER BY total_double_triples DESC) as ranked FROM ( 
        SELECT  bcity, bstate, SUM(doubles+triples) as total_double_triples FROM (
               (SELECT id as b_id, doubles, triples FROM batting) batting_data 
                JOIN 
               (SELECT id, bcity, bstate FROM master WHERE NOT ISNULL(bcity) AND NOT ISNULL(bstate)) master_join
                    ON master_join.id = batting_data.b_id  
            )  GROUP BY bcity, bstate
        )  group_by_totals 
    ) subquery  WHERE subquery.ranked <= 5 ;

我想你只需要在master_join.id=batting_data.b_id之后再添加一个。@BarbarosÖzhan谢谢你的建议。但是,我所有的括号都正确地关闭了。我是否需要添加一个附加的左括号?
SELECT bcity, bstate FROM( 
    SELECT bcity, bstate, DENSE_RANK() OVER (ORDER BY total_double_triples DESC) as ranked FROM ( 
        SELECT  bcity, bstate, SUM(doubles+triples) as total_double_triples FROM (
               (SELECT id as b_id, doubles, triples FROM batting) batting_data 
                JOIN 
               (SELECT id, bcity, bstate FROM master WHERE NOT ISNULL(bcity) AND NOT ISNULL(bstate)) master_join
                    ON master_join.id = batting_data.b_id  
            )  GROUP BY bcity, bstate
        )  group_by_totals 
    ) subquery  WHERE subquery.ranked <= 5 ;