【问题标题】:Problem at Select giving me is neither grouped nor aggregatedSelect给我的问题既不是分组也不是聚合
【发布时间】:2022-08-16 00:29:28
【问题描述】:

我正面临这个错误

SELECT 列表表达式引用 Warehouse.warehouse_id 既不分组也不聚合在 [2:3]

我不知道是什么原因造成的,所以任何帮助将不胜感激?这发生在 \"Warehouse.warehouse_id

SELECT
    Warehouse.warehouse_id,
    CONCAT(Warehouse.state,\':\',Warehouse.warehouse_alias) AS warehouse_name,
    COUNT(Orders.order_id) AS number_of_orders,
    (SELECT COUNT(*)
     FROM warehouse_orders.Orders AS Orders) AS total_orders,
    CASE
        WHEN COUNT(Orders.order_id) / (SELECT COUNT(*) FROM warehouse_orders.Orders AS Orders) <= 0.20
            THEN \"fulfilled 0.20% of Orders\"
        WHEN COUNT(Orders.order_id) / (SELECT COUNT(*) FROM warehouse_orders.Orders AS Orders) > 0.20
             AND COUNT(Orders.order_id)/(SELECT COUNT(*) FROM warehouse_orders.Orders AS Orders) <= 0.20
            THEN \"Fulfilled 21-60% of Orders\"
        ELSE \"Fulfilled more than 60% of Orders\"
    END AS fulfillment_summary
FROM
    warehouse_orders.Warehouse As Warehouse
LEFT JOIN
    warehouse_orders.Orders AS Orders ON Orders.warehouse_id = Warehouse.warehouse_id
GROUP BY
    warehouse_name
HAVING
    COUNT(Orders.order_id > 0)
  • 您的问题是 Warehouse.warehouse_id 包含在选择结果中,但不包含在聚合函数(如 COUNT)中或在 group by 中提及。从 SELECT 结果中将其删除,或将其添加到 GROUP BY 您可能想要: GROUP BY 仓库名称、仓库 ID

标签: sql google-bigquery


【解决方案1】:

谢谢奥卡拉姆。这解决了我的问题。我刚刚在 GROUP BY 中添加,所以那里有 2 个元素:Warehouse.warehouse_id、warehouse_name。 我认为您可以尝试在您的 GROUP BY 中添加 Warehouse.warehouse_id。我认为您在查询中错过了它。

【讨论】:

    猜你喜欢
    • 2017-04-09
    • 1970-01-01
    • 2019-02-20
    • 1970-01-01
    • 2021-07-05
    • 1970-01-01
    • 2017-03-24
    相关资源
    最近更新 更多