JsonArray - 脚本和图表函数
JsonArray 聚合并串联 JSON 数据。
语法:
json JsonArray([DISTINCT][TOTAL] value [, sort_weight])
返回数据类型: 双
参数 | 说明 |
---|---|
DISTINCT |
如果在函数参数前出现单词 DISTINCT,则将忽略计算该函数参数生成的副本。 |
TOTAL |
如果在函数参数前面出现单词 TOTAL,则计算给出当前选择项的所有可能值,而不只是属于当前维度值的那些值,即它会忽略图表维度。 |
value | 输入字段。 该表达式包含要排序的数据。找到 sort_weight 的第一个(最低)值,由 value 表达式的对应值确定。如果在 sort_weight 前面加一个减号,则此函数会返回最后一个(最高)排序值。 |
sort_weight | 输入字段。 该表达式包含要排序的数据。找到 sort_weight 的第一个(最低)值,由 value 表达式的对应值确定。如果在 sort_weight 前面加一个减号,则此函数会返回最后一个(最高)排序值。 |
示例:
以下加载脚本使用 JsonArray 加载和聚合数据。
Data:
LOAD Id,
JsonArray(ValueOrNull) AS Json,
JsonArray(DISTINCT ValueOrNull) AS JsonDistinct,
JsonArray(ValueOrNull, Order) AS JsonSorted
GROUP BY Id;
LOAD *, If(Value='-',Null(),Value) AS ValueOrNull;
LOAD * INLINE '
Id | Value | Order
1 | 123 | 1
2 | "json text" | 2
2 | normal text | 1
3 | [1,2,3] | 3
3 | {"name":"abc"} | 2
3 | [1,2,3] | 1
4 | 1 | 1
4 | 2 and text | 2
4 | | 3
4 | - | 4
' (delimiter is '|');
由此得到了以下数据表格:
ID | Json | JsonDistinct | JsonSorted |
---|---|---|---|
1 | [123] | [123] | [123] |
2 | ["json text","normal text"] | ["json text","normal text"] | ["normal text","json text"] |
3 | [[1,2,3],[1,2,3],{"name":"abc"}] | [[1,2,3],{"name":"abc"}] | [[1,2,3],{"name":"abc"},[1,2,3]] |
4 | [1,"2 and text",""] | [1,"2 and text",""] | [1,"2 and text",""] |