HIVE点滴:选择两个字段时distinct位置的影响
2016-07-12 19:37
1036 查看
当选择两个字段时,例如:"select XX1, XX2 from tb; ",那么将distinct放在前一个字段XX1之前和放在后一个字段XX2之前,结果有什么不同呢?
先说结论:如果将distinct放在前一个字段之前,则会返回对两个字段的组合去重后的结果;而如果将distinct放在后一个字段之前,则会报错。
以下是在HIVE中的验证:
1)建表:其中xxx替换为本地目录名
create external table tmp_tb(
id int,
content int
) row format delimited
fields terminated by ','
stored as textfile
location '/tmp/xxx';
2)从tmp_tb文件中导入数据
load data
local inpath '/home/xxx/tmp_tb'
overwrite into table tmp_tb;
tmp_tb内容:
1,5
2,6
2,5
2,5
3,6
3)选择两个字段时,distinct放在后一个字段之前:
select id, distinct content
from tmp_tb;
结果出现错误提示:
FAILED: ParseException line 1:11 cannot recognize input near'distinct' 'content' 'from' in selection target
4)选择两个字段时,distinct放在前一个字段之前:
select distinct id, content
from tmp_tb;
结果如下:
1 5
2 5
2 6
3 6
可见,当选择两个字段时,如果将distinct放在前一个字段之前,则会返回对两个字段的组合去重后的结果,即distinct同时作用于两个字段;而如果将distinct放在后一个字段之前,则有语法错误。
先说结论:如果将distinct放在前一个字段之前,则会返回对两个字段的组合去重后的结果;而如果将distinct放在后一个字段之前,则会报错。
以下是在HIVE中的验证:
1)建表:其中xxx替换为本地目录名
create external table tmp_tb(
id int,
content int
) row format delimited
fields terminated by ','
stored as textfile
location '/tmp/xxx';
2)从tmp_tb文件中导入数据
load data
local inpath '/home/xxx/tmp_tb'
overwrite into table tmp_tb;
tmp_tb内容:
1,5
2,6
2,5
2,5
3,6
3)选择两个字段时,distinct放在后一个字段之前:
select id, distinct content
from tmp_tb;
结果出现错误提示:
FAILED: ParseException line 1:11 cannot recognize input near'distinct' 'content' 'from' in selection target
4)选择两个字段时,distinct放在前一个字段之前:
select distinct id, content
from tmp_tb;
结果如下:
1 5
2 5
2 6
3 6
可见,当选择两个字段时,如果将distinct放在前一个字段之前,则会返回对两个字段的组合去重后的结果,即distinct同时作用于两个字段;而如果将distinct放在后一个字段之前,则有语法错误。
相关文章推荐
- Unity3D性能优化--- 收集整理的一堆
- 数据库宕机,my.cnf各项配置优化
- 为何你叫妹子笑,却拍出无数黑照?
- JavaEE学习笔记之SSH—Struts2(2)
- Unity 性能优化 Draw Call
- C++实现最短路算法——Dijkstra算法
- POJ 1386 判断欧拉回路
- Java编程中操作XML文件(解析方法三:JDOM)
- Oracle常用查询操作
- POJ 1386 判断欧拉回路
- 搭建spring的开发环境
- LeetCode 235. Lowest Common Ancestor of a Binary Search Tree
- 为虚拟机添加IP(简单描述,仅仅是让虚拟机获取IP)
- minigui demo helloworld在arm目标板子上的运行
- 12个优化Unity/GearVR应用的小技巧
- [置顶] HBase构架
- [CDQ分治 线性基] BZOJ 4184 shallot
- 遮挡剔除(仅专业版) Occlusion Culling (Pro only)
- 会画画有什么用?
- uwa渲染模块性能