mysql和hive中, group by有关的不同点

5 篇文章 0 订阅

mysql和hive中分别有一个stu学生表, 里面有一些相同的信息, 现在我们查看mysql和hive查询中的一点区别

当id和name是一一对应的时候, mysql可以只对其中一个进行分组, 然后取两列, 但是hive中是不可以的, 例如:

此时, name列既没有分组, 也没有聚合但是是可以取出来的, 如果同一个id对应不同的name, 就会选改组id中name最前面的一个name, 但是hive的命令更严格一些, 是不允许的

 第二点不同就是, mysql中的group by的字段是可以是select 中的函数运算后的字段的别名, 例如:

 如果对mysql的执行顺序有所了解的应该清楚, group by是在select之前执行的,怎么能使用select中的别名呢, 其实这是mysql优化器起到的作用, 上面的语句在执行的时候还是会将group by后age_grp还原成 age%10 的, 而hive中并没有对这样的写法进行优化, 所以是不可以的

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值