我有两张表,第一张有详细的订单信息。
Restaurants id, brand id, date, order id, order value (usd)
Restaurants id, restaurants name, brand name
我想创建一个表格,显示按餐厅名称分组的每月收入。
示例:
December November October
Res 1
Res 2
Res 3
我的 SQL 查询:
SELECT
A.restaurant_id,
SUM(CASE
WHEN A.date >= '2024_12_01'
THEN A.order_value
ELSE 0
END) AS December_Revenue,
FROM A
LEFT JOIN B ON A.restaurant_id = B.restaurants_id
GROUP BY B.restaurant_name
ORDER BY December_revenue DESC
我的 SQL 查询面临此错误:
列“A.restaurant_id”必须出现在 GROUP BY 子句中或使用 在聚合函数中
如何解决?
当您使用聚合函数时,您必须在 GROUP BY 子句中列出 SELECT 中的每一列,因此您必须在 GROUP BY 中列出 A.restaurant_id 因为您在 SELECT 中使用此列。
我认为你不必使用B.restaurant_name,A.restaurant_id就足够了。