一些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')

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 ,新加了一些生活中了一些應用

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章