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}}}