我尝试在我的代码中获取另一个数组中的数组。我有sql查询。看起来像这样并且效果很好!
SELECT array_agg(array[CAST(EXTRACT(epoch FROM subquery.timestamp) AS BIGINT), subquery.count]) AS "some"
FROM (
SELECT
some_table.timestamp AS timestamp,
count(some_table.any) AS count
FROM
some_table
GROUP BY
some_table.timestamp
ORDER BY
some_table.timestamp
) AS subquery;
我想用sqlalchemy写它。我明白了
subquery = (sa.select(
some_table.c.timestamp,
sa.func.count(some_table.c.any).label("count"),
).group_by(some_table.c.timestamp)
.order_by(some_table.c.timestamp)
.alias("subquery"))
insert_query = (sa.select(
sa.func.array_agg(
sa.func.array(
sa.cast(sa.func.EXTRACT("epoch", subquery.c.timestamp), sa.BigInteger),
subquery.c.count)).label("some"))
.select_from(subquery)
我得到相同的sql但是:
ERROR: syntax error at or near "CAST"
LINE 1: SELECT array_agg(array(CAST(EXTRACT(epoch FROM subquery.time...
括号内的所有问题。我应该在 sqlalchemy 查询中更改什么?
这个问题的答案在评论里