更改 SQL 以便将子查询结果展平为两个单独的数组
Changing AQL so that sub-query result is flattened into two seperate arrays
此查询有效:
FOR person IN 1..1 INBOUND @companyID employed_by
LET age = DATE_DIFF(person.age * 1000, @currentTime * 1000, 'y')
COLLECT label = age WITH COUNT INTO value
RETURN {data: label, frequency: value}
然后给我这个:
[
{
data: 18,
frequency: 69
},
{
data: 19,
frequency: 73
},
{
data: 20,
frequency: 86
}
]
但我真正想要的是这样的东西
{
data: [18, 19, 20]
frequency: [69, 73, 86]
}
我原以为以下查询会起作用 - 但 PUSH 语句失败(语法错误),我在 FOR 循环中尝试了一堆 PUSH 语句,但无法让它们按预期工作,这意味着我正在做一些绝对精神
LET data = []
LET frequency = []
LET temp =
(
FOR person IN 1..1 INBOUND @companyID employed_by
LET age = DATE_DIFF(person.age * 1000, @currentTime * 1000, 'y')
COLLECT label = age WITH COUNT INTO value
data = PUSH(data, label)
frequency = PUSH(frequency, value)
RETURN true
)
RETURN {data: data, frequency: frequency}
任何建议都很好!
而且,经过更多的摆弄之后 - 这似乎正是我所需要的:
LET temp =
(
FOR person IN 1..1 INBOUND @companyID employed_by
LET age = DATE_DIFF(person.age * 1000, @currentTime * 1000, 'y')
COLLECT label = age WITH COUNT INTO value
RETURN {data: label, frequency: value}
)
RETURN {data: temp[*].data, frequency: temp[*].frequency}
此查询有效:
FOR person IN 1..1 INBOUND @companyID employed_by
LET age = DATE_DIFF(person.age * 1000, @currentTime * 1000, 'y')
COLLECT label = age WITH COUNT INTO value
RETURN {data: label, frequency: value}
然后给我这个:
[
{
data: 18,
frequency: 69
},
{
data: 19,
frequency: 73
},
{
data: 20,
frequency: 86
}
]
但我真正想要的是这样的东西
{
data: [18, 19, 20]
frequency: [69, 73, 86]
}
我原以为以下查询会起作用 - 但 PUSH 语句失败(语法错误),我在 FOR 循环中尝试了一堆 PUSH 语句,但无法让它们按预期工作,这意味着我正在做一些绝对精神
LET data = []
LET frequency = []
LET temp =
(
FOR person IN 1..1 INBOUND @companyID employed_by
LET age = DATE_DIFF(person.age * 1000, @currentTime * 1000, 'y')
COLLECT label = age WITH COUNT INTO value
data = PUSH(data, label)
frequency = PUSH(frequency, value)
RETURN true
)
RETURN {data: data, frequency: frequency}
任何建议都很好!
而且,经过更多的摆弄之后 - 这似乎正是我所需要的:
LET temp =
(
FOR person IN 1..1 INBOUND @companyID employed_by
LET age = DATE_DIFF(person.age * 1000, @currentTime * 1000, 'y')
COLLECT label = age WITH COUNT INTO value
RETURN {data: label, frequency: value}
)
RETURN {data: temp[*].data, frequency: temp[*].frequency}