数组中的数组 sqlalchemy

问题描述 投票:0回答:1

我尝试在我的代码中获取另一个数组中的数组。我有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 查询中更改什么?

python-3.x sqlalchemy
1个回答
0
投票

这个问题的答案在评论里

© www.soinside.com 2019 - 2024. All rights reserved.