[英]SQL - Why am I getting an ORA-00918 Error? I defined a column that's duplicated
我正在尝试使用 Oracle LiveSQL 完成我的数据库编程 class 作业的练习。 我定义了出现在所访问的 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;
通常,出现在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
是同时出现在两个表中的列。 您需要一个别名来限定要包括哪个表的列。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.