0

export_value特定の製品と状態のペアに基づいて、各州によってエクスポートされた上位の製品を返すために、PostgreSQL バックエンドを使用して Peewee でクエリを作成しようとしています。これが私が今持っているクエリです:

    subquery = (
        models.Trade.select(
            models.Trade.state.alias('state_1'),
            models.Trade.product.alias('product_1'),
            fn.SUM(models.Trade.export_value).alias("export_value_1")
        ).where(
            models.Trade.origin_country == origin_country,
            models.Trade.year == year
        ).group_by(
            models.Trade.state,
            models.Trade.product
        ).alias("subquery")
    )

    query = (
        models.Trade.select(
            models.Trade.state,
            models.Trade.product,
            fn.MAX(subquery.c.export_value_1).alias("export_value")
        ).join(
            subquery, on=(
                (models.Trade.state == subquery.c.state_1) &
                (models.Trade.product == subquery.c.product_1)
            )
        ).group_by(
            models.Trade.state
        )
    )

models.Trade.productGROUP BY またはアグリゲーターでを使用していないため、このクエリを実行するとエラーが発生します。私は Peewee を初めて使用するので、このクエリを変更するか別のクエリを使用して、目的を達成する方法についてのヒントがあれば教えてください。

4

0 に答える 0