昨天/当前日期减一天 | format_datetime(current_date - interval '1' day,'yyyy-MM-dd') |
本月 | format_datetime(current_date - interval '1' day,'yyyy-MM') |
上月 | format_datetime(current_date - interval '1' day - interval '1' month,'yyyy-MM') |
下月 | format_datetime(current_date - interval '1' day +interval '1' month,'yyyy-MM') |
去年同月 | format_datetime(current_date - interval '1' day - interval '12' month,'yyyy-MM') |
当前日期减一天 | format_datetime(current_date - interval '1' day,'yyyy-MM-dd') |
当前日期减一个月 | format_datetime(current_date - interval '1' month,'yyyy-MM') |
两个时间的自然日期差值/天内 | date_diff('day',cast(substr('2025-03-05 23:34:39',1,10) as date),cast(substr('2025-03-08 13:16:23',1,10) as date))常用于计算多少天,或者多少天内的限制 |
两个时间的自然月份差值/多少月 | date_diff('month',cast(concat(substr('2025-02-05 23:34:39',1,8),'01') as date),cast(concat(substr('2025-03-08 13:34:39',1,8),'01') as date))----提取俩个时间的自然月份差,小时间在前,大时间在后;需将两个时间转化成yyyy-MM-01的格式;常用于计算第几个月,或者几个月内的限制 |
两个时间的自然小时差/小时内 | date_diff('hour',cast(concat(substr('2025-03-05 23:34:39',1,14),'00:00') as timestamp),cast(concat(substr('2025-03-08 13:34:39',1,14),'00:00') as timestamp))----提取;两个时间的自然小时差,小时间在前,大时间在后;需将两个时间转化成yyyy-MM-dd hh:00:00的格式,常用于计算多少小时,或者几个小时内的限制 |
正则表达式 | regexp_like(appointment_stu_grade,'一|二|三|四|五|六') |
月末最后一天 | format_datetime(cast(concat(substr(2025-03-05 23:34:39,1,7),'-01') as date)+interval'1'month-interval'1'day,'yyyy-MM-dd')---将时间转化为下个月的第一天,再减去一天 |
计算最后一次/末次 | row_number()over(partition by studernt_age order by student_id asc) as rn---当rn=1时是末次,常用于只保留一条末次记录 |
计算第一次/首次 | row_number()over(partition by studernt_age order by student_id) as rn--当rn=1时是首次,常用于只保留一条首次记录 |
查询上一次的数据 | lag(student_id,1)over(partition by studernt_age order by student_id) as student_id--该生同龄前一个学生 |
查询下一次的数据 | lead(student_id,1)over(partition by studernt_age order by student_id) as student_id--该生同龄后一个学生 |
查询首次 | first_value(student_id,1)over(partition by studernt_age order by student_id) as student_id--第一个学生,常用于保留所有记录,每条记录能看到第一个记录的内容 |
查询末次 | last_value(student_id,1)over(partition by studernt_age order by student_id) as student_id--最后一个学生,常用于保留所有记录,每条记录能看到最后一个记录的内容 |
json字段提取 | json_extract_scalar(ext_info,'$.regOldCr') as regOldCr---ext_info为json类型,里面包含了regOldCr字段 |
将字段聚合为数组 | array_agg(value) |
将字段聚合为数组并去重 | array_distinct(value) |
将数组用逗号间隔 | array_join(comment, ', ') |
grouping sets()分层聚合 | group by grouping sets((student_sex,student_age),(student_age))----这样相当于对(student_sex,student_age)和(student_age)分别聚合 |