SQL - 为什么我会收到 ORA-00918 错误?我定义了一个重复的列
SQL - Why am I getting an ORA-00918 Error? I defined a column that's duplicated
我正在尝试使用 Oracle LiveSQL 完成数据库编程 class 作业的练习。我定义了出现在所访问的 2 个 table 中的每一个的列。我不明白为什么会出现错误。我的代码哪里出错了?
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;
table 图与我们正在使用的 2 tables:
通常,出现在 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
是同时出现在两个 table 中的列。您需要一个别名来限定要包含的 table 的列。
我正在尝试使用 Oracle LiveSQL 完成数据库编程 class 作业的练习。我定义了出现在所访问的 2 个 table 中的每一个的列。我不明白为什么会出现错误。我的代码哪里出错了?
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;
table 图与我们正在使用的 2 tables:
通常,出现在 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
是同时出现在两个 table 中的列。您需要一个别名来限定要包含的 table 的列。