Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
181 views
in Technique[技术] by (71.8m points)

sql - using MAX() and COUNT() with HAVING

i have 2 tables movie:

insert into movie values ('mov1','2014-01-22','actor11');
insert into movie values ('mov2','2015-01-25','actor12');
insert into movie values ('mov1','2016-02-22','actor12');
insert into movie values ('mov1','2017-04-20','actor12');

dir:

insert into dir values ('d1','mov1','us',3);
insert into dir values ('d1','mov1','ind',3);
insert into dir values ('d2','mov2','uk',4);
insert into dir values ('d2','mov3','ind',3);

i want to find name of actor who has worked with most number of directors:

code:

SELECT actor, COUNT(actor) as c 
FROM   movie a  
       inner join dir b 
       on a.moviename=b.moviename  
GROUP BY actor
HAVING COUNT(actor)=(
                       SELECT MAX(mycount) 
                       FROM   ( 
                                  SELECT actor, COUNT(actor) as mycount 
                                  FROM   movie a 
                                         inner join dir b 
                                          on a.moviename=b.moviename 
                                  GROUP BY actor
                               )
                     );

i think the code is correct but im getting the error: Incorrect syntax near ')'.

Pls help!!

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Try something like this

SELECT TOP (1) actor, COUNT(d.col1) as c 
FROM   movie a  
inner join dir b 
on a.moviename=b.moviename 
Group BY actor
ORDER BY c DESC

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...