Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 配置单元能否选择“组合分组依据”和“订单依据”?_Sql_Hadoop_Hive - Fatal编程技术网

Sql 配置单元能否选择“组合分组依据”和“订单依据”?

Sql 配置单元能否选择“组合分组依据”和“订单依据”?,sql,hadoop,hive,Sql,Hadoop,Hive,我在配置单元中执行一些相对简单的查询,似乎无法在单个语句中组合GROUPBY和ORDERBY。我可以在GROUPBY查询的临时表中执行select,然后使用ORDERBY对该表执行select,但我无法将它们组合在一起 例如,我有一个表a,可以执行以下查询: SELECT place,count(*),sum(weight) from a group by place; create temporary table result (place string,count int,sumweigh

我在配置单元中执行一些相对简单的查询,似乎无法在单个语句中组合GROUPBY和ORDERBY。我可以在GROUPBY查询的临时表中执行select,然后使用ORDERBY对该表执行select,但我无法将它们组合在一起

例如,我有一个表a,可以执行以下查询:

SELECT place,count(*),sum(weight) from a group by place;
create temporary table result (place string,count int,sumweight int);
insert overwrite table result 
      select place,count(*),sum(weight) from a group by place;
select * from result order by place;
SELECT place,count(*),sum(weight) from a group by place order by place;
我可以执行这个查询:

SELECT place,count(*),sum(weight) from a group by place;
create temporary table result (place string,count int,sumweight int);
insert overwrite table result 
      select place,count(*),sum(weight) from a group by place;
select * from result order by place;
SELECT place,count(*),sum(weight) from a group by place order by place;
但如果我尝试这个查询:

SELECT place,count(*),sum(weight) from a group by place;
create temporary table result (place string,count int,sumweight int);
insert overwrite table result 
      select place,count(*),sum(weight) from a group by place;
select * from result order by place;
SELECT place,count(*),sum(weight) from a group by place order by place;
我得到这个错误:

错误:编译语句时出错:失败:ParseException行1:45不匹配的输入,字符串文字状态为42000,代码为40000,应为\'near'\u c0'

SELECT place,count(*),sum(weight) from a group by place sort by place;
这样使用:

SELECT place,count(*),sum(weight) from a group by place sort by place;
尝试使用group by作为子查询,order by作为外部查询,如下所示:

选择 位置 cnt, 总和 从…起 选择 位置 将*计为cnt, 重量之和 从 按地点分组 A. 按地点排序; 尝试使用group by作为子查询,order by作为外部查询,如下所示:

选择 位置 cnt, 总和 从…起 选择 位置 将*计为cnt, 重量之和 从 按地点分组 A. 按地点排序;
我试着按排序,得到了类似的结果。根据您引用的文档,SORT BY和ORDER BY之间的唯一区别是,ORDER BY保证总排序,而SORT BY则对减速机的输入进行排序,因此总排序可能不一致。我遗漏了什么吗?我只是在尝试帮助:……order by子句中有一些限制。在严格模式下,即hive.mapred.mode=strict。。。正在执行配置单元操作的模式。在严格模式下,不允许运行某些有风险的查询。例如,禁止全表扫描请参见HIVE-10454和ORDER BY要求限制条款…我感谢您的帮助!唉,增加限制没有帮助,但它确实有助于分成两个选择。我尝试按排序,得到了类似的结果。根据您引用的文档,SORT BY和ORDER BY之间的唯一区别是,ORDER BY保证总排序,而SORT BY则对减速机的输入进行排序,因此总排序可能不一致。我遗漏了什么吗?我只是在尝试帮助:……order by子句中有一些限制。在严格模式下,即hive.mapred.mode=strict。。。正在执行配置单元操作的模式。在严格模式下,不允许运行某些有风险的查询。例如,禁止全表扫描请参见HIVE-10454和ORDER BY要求限制条款…我感谢您的帮助!唉,增加限额并没有帮助,但它确实有助于分成两部分。