Sql ORA-907:缺少右括号,我做得对吗?
我对SQL有点陌生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
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
一定是指“雇主名称”。不管怎样,我仍然认为我上面给你的逻辑就是你想要的。