选择两个字段时distinct位置的影响
2016-10-27 15:22
190 查看
当选择两个字段时,例如:"select XX1, XX2 from tb; ",那么将distinct放在前一个字段XX1之前和放在后一个字段XX2之前,结果有什么不同呢?
先说结论:如果将distinct放在前一个字段之前,则会返回对两个字段的组合去重后的结果;而如果将distinct放在后一个字段之前,则会报错。
以下是在Hive中的验证:
1)建表:其中xxx替换为本地目录名
2)从tmp_tb文件中导入数据
tmp_tb内容:
1,5
2,6
2,5
2,5
3,6
3)选择两个字段时,distinct放在后一个字段之前:
结果出现错误提示:
FAILED: ParseException line 1:11 cannot recognize input near'distinct' 'content' 'from' in selection target
4)选择两个字段时,distinct放在前一个字段之前:
结果如下:
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放在后一个字段之前,则有语法错误。
相关文章推荐
- HIVE点滴:选择两个字段时distinct位置的影响
- 【Mysql】日期差函数,Mysql选择两个日期字段相差大于或小于一定时间
- 2017-5-14 湘潭市赛 Partial Sum 给n个数,每次操作选择一个L,一个R,表示区间左右端点,该操作产生的贡献为[L+1,R]的和的绝对值-C。 0<=L<R<=n; 如果选过L,R这两个位置,那么以后选择的L,R都不可以再选择这两个位置。最多操作m次,求可以获得的 最大贡献和。
- 安卓:WebView中iframe,焦点字段出现两个文本输入框,位置错误
- 改造asp.net日历控件为弹出式日期选择控件和GridView呈现长文本字段的两个技巧
- 牛牛和15朋友来玩打土豪分田地的游戏,牛牛决定让你来分田地,地主的田地可以看成是一个矩形,每个位置有一个价值。分割田地的方法是横竖各切三刀,分成26份,作为领导干部,牛牛总是会选择其中总价值最小的一份田地,作为牛牛最好的朋友,你希望牛牛取得的田地价值和尽可能大,你知道这个值最大可以是多少吗? 输入两个整数n和m(1≤n,m≤75)表示田地的大小,接下来n行,每行包括m个0-9之间的数字,表示每块
- 改造asp.net日历控件为弹出式日期选择控件和GridView呈现长文本字段的两个技巧
- distinct和order by共存对索引选择的影响 推荐
- db2按字段长度排序,使用distinct对ordery by的影响
- Mysql日期差函数,Mysql选择两个日期字段相差大于或小于一定时间
- Android APK应用安装位置选择与对Widget的影响
- 序时薄打开非常慢--慎用DISTINCT(在选择大量字段的情况下)
- 现在,有两个整数A和B,例如A是345,B是478,现在,需要把B插入到A里, 而A有三位,所以有四个位置选择,所得结果分别是: 478345, 347845, 344785, 345478 我们通过对比可以知道,在这当中最小的一个是344785
- Wordpress连续被爆两个存储型XSS,影响最新版本
- jQuery实现两个按钮的位置互换
- django model filter 条件过滤,及多表连接查询、反向查询,某字段的distinct
- 关于 char(10) 与 varchar(20) 两个类型的字段的比较 (oracle 数据库)
- 比如有个表A,表中有100000条记录,他有两个字段b,c,我现在想根据b排序来取第100到200条数据
- distinct 多个字段
- SQL分组后采用LAST函数查询时字段位置的秘密