无法达到MAX(COUNT),并且有多列

问题描述 投票:0回答:2

我有4个表,员工,驱动程序,旅行和三重奏

EMPLOYEE表具有要提取并显示的名称,具有最大数量,具有与驱动程序共享的E#DRIVER表具有与TRIP相同的L#(许可证号)

TRIP表具有与TRIPLEG相同的T#(行程号)>

我正在尝试查找驱动程序已完成的最大三倍(在这种情况下,许可证号为10002的驱动程序:

SELECT MAX(COUNT(TRIPLEG.LEG#))
FROM TRIP, TRIPLEG
ON TRIP.T# = TRIPLEG.T#
WHERE TRIP.L# = 10002
GROUP BY TRIP.T#

COUNT(TRIPLEG.LEG#)给了我https://i.imgur.com/AYAovov.png

所以我做了上面的MAX(COUNT(TRIPLEG.LEG#)),这给了我:https://i.imgur.com/alCFlO3.png

我无法尝试选择更多列(如TRIP.T#),因此无法继续

SELECT TRIP.T#, MAX(COUNT(TRIPLEG.LEG#))
FROM TRIP, TRIPLEG
ON TRIP.T# = TRIPLEG.T#
WHERE TRIP.L# = 10002
GROUP BY TRIP.T#

给我一个错误:ORA-00937:不是单组分组功能

有什么建议吗?需要能够从小处开始并进行选择,然后才能加入更多表以使Employee名称显示在MAX Tripleg计数旁边。

提前感谢

基本上,我想要的是这样的东西:(仅1行,这是完成的MAX三元组(5))

NAME     MAX(COUNT(TRIPLEG.LEG#))
-----------------------------------
BOB      5
    

我有4个表,EMPLOYEE,DRIVER,TRIP和TRIPLEG EMPLOYEE表具有要提取的名称并以MAX计数显示,具有与DRIVER DRIVER表共享的E#具有L#(许可证号)...

sql function stored-procedures oracle-sqldeveloper stored-functions
2个回答
0
投票

我没有您的表,所以我将使用Scott的EMP和DEPT(因为您使用Oracle,所以我假设您熟悉它们)。


0
投票

根据您的表查找驱动程序已完成的最大三倍次数(在这种情况下,许可证号为10002的驱动程序:

© www.soinside.com 2019 - 2024. All rights reserved.