常用函数FAQ

观小数发表于:2020年02月03日 15:42:19更新于:2020年09月16日 11:53:38

Q1、  有什么办法用now函数得到昨天带时分秒的数据吗?

答:from_unixtime(to_unix_timestamp(now()) - 86400, 'yyyy-MM-dd HH:mm:ss')

Q2、显示日期是年度的第几周有哪个公式可以实现?

答:WEEKOFYEAR()

Q3、地址字段如“山东省滨州市邹平县” 如何快速拆分成省/市/区县的字段?

答:一般来说:按照  explode(split([地址],'省'))  来新建字段即可;但存在5个自治区、4个直辖市和2个特别行政区,以及有些是xx区,有些是xx县,好几种情况需要单独来处理:

①  REGEXP_REPLACE([地址],'省|市|区|县','-')

②  explode(split([拆分],'-'))

Q4、SUBSTRING这个函数,起始位置是负数的时候没法从后面开始截取是什么原因?(substring([门店名称],-1,4)无法取到后面往前四位的字符)

答:直连数据库使用内置函数不一定通用,可使用数据源本身的语法。如果是sqlserver的数据源,可以参考如下:substring([门店名称],Len([门店名称])-1,4)

Q5、要筛选本月及本月之后的数据,用筛选器怎么设置?

答:新建日期筛选器,设置大于等于自定义时间宏{{{ first day of this month}}}

Q6、怎么显示一列时间数据里最晚的那个时间?

答:max([时间字段])over( partition by ())

Q7、用round()函数取整后,会带有一位小数点,怎么去掉?

答:可以用int()函数进行取整,不带小数点。

Q8、新建字段的数据计算错误可能是什么原因?

答:有null值的情况下计算的结果为null值,建议在ETL输出前加一步“null值替换”

Q9、string格式的日期怎么转换为date,直接用to _date()的结果是null值?

答:如果原来的格式为12/25/19(月/日/年),那么要写成to _date([日期],"MM/dd/yy),即需要在to _date后面指定原来的格式才能正常转换。

Q10、为什么用dense_rank函数取前几名的排名会出现问题?比如if(dense_rank () over (partition by null order by[金额 ]desc)>8,'其他',[国家]) 会取到多于8个的国家?

答:dense_rank排名可能是12234455667788这样 所以>8的可能不止8个。

Q11、观远平台里的最近七天包含当天嘛?有办法把当天加进去嘛?

答:最近七天不含当天,可以把当天加进去,用自定义时间宏:{{{today}}}~{{{today-6 days}}}


    您需要登录后才可以回复