一些presto语句记录

1、找出时间大于2018-12-17的所有内容

select * from table where "time" > date('2018-12-17') 

与关系型数据库不同的是完全不同类型的不可以比较,类似的才可以比较,关系型数据库的

2、针对完全不同类型的进行比较,也可以使用cast函数,用法:cast(value as type)

比如      select * from table where "time" > cast('2018-12-17' as date)  limit 100,

3、表示日期的函数:
   (1)now()  精确到今天的时分秒

   (2) current_date 精确到今天的年月日

   (3) current_date - interval '1' day, 精确到昨天的年月日

   (4)日期类型不能与字符串比较,运行错误,需要显式转换
   (5)字符串格式化成日期格式

           date_parse('2018-12-17 12:12:12', '%Y-%m-%d %H:%i:%s'), 

           cast('2018-09-09' as date),

           cast('2018-09-09 12:12:12' as timestamp),

   (6) 日期转指定格式化字符串
           date_format(now(), '%Y-%m-%d %H:%i:%s')

    (7)转换为时间戳

       to_unixtime(cast ('2018-12-18 09:18:09.000' as timestamp))   

 关于时间的文档:https://prestodb.io/docs/current/functions/datetime.html

4、一些presto在实际上的应用

比如:某段时间内 获取金币数的人数分布,0~1000金币的用户数 有多少人  1001~5000金币的有多少人

  SELECT count(1)
    ,col
FROM (
    SELECT "user_id"
        ,CASE 
            WHEN total< 500
                THEN '0-500'
            WHEN total>= 500
                AND total < 1000
                THEN '500-1000'
            ELSE '>1000'
            END col
    FROM (
        SELECT "user_id"
            ,sum(count) AS total_coin
        FROM event
        WHERE "date" >= '2018-11-01'
            AND "event" = 'consume_coin'
        GROUP BY "user_id"
        ) a
    ) b
GROUP BY col

结果如下:

 


转载来自:https://blog.csdn.net/c13232906050/article/details/82623028 ,新加了一些生活中了一些应用

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值