我在Postgres中有一个数据表,其中包含一个列age
,其中包含人们的年龄.遗憾的是,该数据是脏的,因此它包括可能代表范围的字符串条目,具有以下所有格式:
21
25-30
30-35 years
用Apache Superset,我用这个数据做了一个图表.我可以对该列应用函数,例如,我使用此表达式来获得范围split_part(split_part("age",' ',1),'-', 1)::int
的下限.
然而,下限并不能真正代表数据.我希望当我有一个范围来得到平均值.我试过了:
avg(unnest(string_to_array(split_part("age",' ',1),'-')::int[]))
但我得到了:
aggregate function calls cannot contain set-returning function calls
LINE 1: SELECT avg(unnest(string_to_array(split_part("ageValue",' ',...
^
HINT: You might be able to move the set-returning function into a LATERAL FROM item.
这款手机有fiddle款.
我已经看到了suggestions种使用SELECT或Function实现这一点的方法,但我不能在Superset X轴查询中使用它们中的任何一种.它可以只用表达式来完成吗?如果是的话-如何完成呢?