我正在嘗試使用 Oracle LiveSQL 完成我的資料庫編程課程的作業練習。我定義了出現在訪問的 2 個表中的每個表中的列。我不明白為什么我會收到錯誤。我的代碼哪里出錯了?
SELECT
orders.customer_id,
cust_email,
COUNT(order_id) AS num_orders
FROM
oe.customers
LEFT JOIN oe.orders
ON oe.customers.customer_id = oe.orders.customer_id
GROUP BY
customer_id
ORDER BY
customer_id ASC;
我們正在使用的帶有 2 個表格的表格圖:

uj5u.com熱心網友回復:
SELECT通常,子句中出現的任何列也必須出現在 中GROUP BY,除非這些列出現在聚合函式中。考慮使用這個版本:
SELECT
c.customer_id,
c.cust_email,
COUNT(o.order_id) AS num_orders
FROM oe.customers c
LEFT JOIN oe.orders o
ON c.customer_id = c.customer_id
GROUP BY
c.customer_id,
c.cust_email
ORDER BY
c.customer_id;
另請注意,您遇到的另一個問題customer_id是出現在兩個表中的列。您需要一個別名來限定要包含的表的列。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/425317.html
下一篇:oracle中的單詞拆分
