Sql ORA-907:缺少右括号,我做得对吗?

Sql ORA-907:缺少右括号,我做得对吗?,sql,Sql,我对SQL有点陌生 SELECT EMP_NAME, MAX(count(CONTRACT_CLIENT) FROM CONTRACT JOIN EMPLOYER ON (CONTRACT_ID = EMP_ID) WHERE EMP_ID = CONTRACT_ID; 它缺少右括号。感觉完全迷路了。您似乎想找到合同数量最多的员工。以下是一种方法: SELECT EMP_NAME, CC_CNT FROM ( SELECT EMP_NAME, COUNT(CONTRACT_CLIE

我对SQL有点陌生

SELECT EMP_NAME, MAX(count(CONTRACT_CLIENT)

FROM CONTRACT JOIN EMPLOYER ON (CONTRACT_ID = EMP_ID)

WHERE EMP_ID = CONTRACT_ID;

它缺少右括号。感觉完全迷路了。

您似乎想找到合同数量最多的员工。以下是一种方法:

SELECT EMP_NAME, CC_CNT
FROM
(
    SELECT EMP_NAME, COUNT(CONTRACT_CLIENT) AS CC_CNT
    FROM CONTRACT
    INNER JOIN EMPLOYER ON CONTRACT_ID = EMP_ID
    GROUP BY EMP_NAME
    ORDER BY COUNT(CONTRACT_CLIENT) DESC
) t
WHERE rownum = 1;

您缺少的关键步骤包括使用
groupby
按员工聚合。而且,您不能在
MAX
内部嵌套对
COUNT
的调用。相反,请使用
rownum
技巧查找计数最高的员工。

我怀疑您的SQL查询是否会返回正确的输出,但我正在为您解决括号问题

SELECT EMP_NAME, MAX(COUNT(CONTRACT_CLIENT))
FROM CONTRACT 
JOIN EMPLOYER ON (CONTRACT_ID = EMP_ID)
WHERE EMP_ID = CONTRACT_ID;

如果你只是在修正一个打字错误,那么请不要回答,而是投票决定作为一个打字错误问题结束(但除此之外还有许多其他问题)。emp指的是雇主,即客户,顾问即雇员。我正在寻找哪个雇主与美国oops签订的合同最多……那么我猜
EMP_NAME
一定是指“雇主名称”。不管怎样,我仍然认为我上面给你的逻辑就是你想要的。