SQL Developer-将concat与GROUP BY函数一起使用进行计数(错误ORA-00904)

时间:2018-10-11 13:53:44

标签: sql oracle sql-order-by having

我正在为一个学校项目创建一个模拟数据库, 我有两个表:客户和订单 这两个表都是这样

客户:custID,custLName,custFName,custAddress,custTown,custPostcode,custPhone,custEmail

订单:orderID,orderDate,dispatchDate,custID(外键)

我正在尝试生成一个查询,该查询返回订单最多的客户的全名和电话号码。 这是我在下面的查询,但是它在GROUP BY函数上返回错误,指出ORA-00904:“客户”:无效的标识符

SELECT b.custFName || ' ' || b.custLName || ', ' || b.custPhone AS Customer, 
COUNT(DISTINCT o.custID) AS Orders_Placed
FROM CUSTOMERS b, ORDERS o 
GROUP BY Customer
HAVING COUNT(DISTINCT o.custID) AND b.custID = o.custID
ORDER BY o.custID DESC;

1 个答案:

答案 0 :(得分:0)

除了Gordon Linoff和Boneist所说的那样,除了提到的所有其他错误之外,您也没有在HAVING子句中进行过滤。正确进行联接,然后过滤/选择具有最大计数的记录。