大数据hive的使用踩过的坑

1、给到一个项目你需要知道的三大事情:对接人、周期、完成标准
2、date的类型使用datetime
4、在MySQL中,跟百分比有关的数据,统一用decimal类型,保留两位小数就行,hive里面数据类型有double
5、MySQL中创建表表名后面不需要加上table
6、'${dbp.system.cyctime}'获取当前日期
7、使用子查询在查询的时候,最后主查询的字段在子查询里面需要被包含
8、使用union all 时在最后不应该加最后一层的select ,因为union all本身就是将数据写入到一块
9、在使用join的时候,将条件放在on后面和放在where后面是有区别的,具体查看CSDN我发布的资料
10、join比较常用,需要仔细学习
    INNER JOIN 内连接:只有进行连接的两个表中都存在与连接条件相匹配的数据才会被保留下来
    LEFT OUTER JOIN 左外连接:左边所有数据会被返回,右边符合条件的被返回
    RIGHT OUTER JOIN 右外连接:右边所有数据会被返回,左边符合条件的被返回
    FULL OUTER JOIN 满外(全外)连接: 将会返回所有表中符合条件的所有记录。
    如果任一表的指定字段没有符合条件的值的话,那么就使用NULL值替代。
     join on条件后面可以使用大于小于符号;并且也支持 join on 条件后跟or 
11、前面有count、sum等聚合函数的时候,需要在最后加上除了count、sum的字段
12、时间字段也可以使用min或者max函数求出最大最小的时间
13、on的后面不止跟一个参数,可以跟多个条件
14、case when 条件 then 结果
    when 条件 then 结果
    when 条件 then 结果
    else 结果
    end
15、判断是否为空 nvl(字段, '') != ''
16、字段类型decimal,用于在数据库中存储精确的数值,通常用在有小数的字段上
    如:decimal(11,2) 代表最多有11位数字,其中后2位是小数,整数部分是9位;
        如果整数部分超过9位,则这个字段就会变成null,如果整数部分不超过9位,则原字段显示;
        如果小数部分不足2位,则后面用0补齐两位,如果小数部分超过两位,则超出部分四舍五入;
        也可直接写 decimal,后面不指定位数,默认是 decimal(10,0) 整数10位,没有小数
17、分区的使用
18、强制类型转换cast
19、得到当前日期是星期几sql语句:(pmod(datediff(时间,'2018-01-01'),7)+1) 得到的是数字
20、表示时间的字段类型可以使用
21、聚合函数中 null 值
    count(*) 包含 null 值,统计所有行数;
    count(id) 不包含id为 null 的值;
    min 求最小值是不包含 null,除非所有值都是 null;
    avg 求平均值也是不包含 null。
22、运算符中 null 值
    (1)每行中的列字段相加或相减,如果含有 null 值,则结果为 null

    例:有一张商品表(product)
        id    price    dis_amount
        1    100    20
        2    120    null
    各字段含义: id (商品id)、price (价格)、dis_amount (优惠金额)

    我想算每个商品优惠后实际的价格,sql如下:
        select id, price - dis_amount as real_amount from product;
得到结果如下:

        id    real_amount
        1    80
        2    null
    (2)小于是不包含 null 值
    (3)not in 是不包含 null 值的,如 city not in ('北京','上海'),
               这个条件得出的结果是 city 中不包含 北京,上海和 null 的城市。
23、coalesce 函数是返回第一个不为空的值
23、逻辑运算符 in,not in
24、and的优先级高于or的优先级,所以在使用的时候要注意一下位置或者加上括号
25、with as的使用
    with t1 as(),
            t2 as(),
            t3 as()
26、!= 与 <>的区别

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值