一些常见用法
- 时间戳转化:
从微秒或更细的时间戳转换为到秒的时间戳:
select now()::timestamp(0) without time zone
- 两个逗号隔开的字符串列表(其他符号分隔也可以)进行比较
重叠(是否有相同元素):其中只要有相同项则视为匹配成功
select regexp_split_to_array(textA,',') && regexp_split_to_array(textB,',')
重叠(是否有相同元素):其中只要有相同项则视为匹配成功
- 三种聚合分组排序
a. 根据某一字段(A)分组,根据某一字段(B)排序,按照行数生成rownum
b. 根据某一字段(A)分组,根据某一字段(B)排序,按照排序生成rownum(B字段相同的rownum并列相同,即1,2,2,4,5,5,5,8…间断排名排序)
c. 根据某一字段(A)分组,根据某一字段(B)排序,按照排序生成rownum(B字段相同的rownum并列相同,但是后续列仍会依次排序,即1,2,2,3,4,4,4,5…不间断排名排序)
select row_number() over(partition by A order by B) as rownum;
select rank() over(partition by A order by B) as rownum;
select dense_rank() over(partition by A order by B) as rownum;
一些冷门用法
也可能只是对我来说冷门, 因为我比较菜
1.
3.
4. 项目2
5. 项目3