JOAOBERNARD070 Posted June 21, 2020 at 12:53 PM Report Share #618468 Posted June 21, 2020 at 12:53 PM Boa tarde estou com algumas dificuldades em responder a esta query, alguém me pode ajudar?? Quais são os Grupos, cujos CDs têm uma avaliação média igual ou superior a 4,00? Nota: Para além da informação do grupo deve apresentar a média da avaliação dos seus CDs. SELECT DISTINCT G.nome, C.avaliacao FROM CD AS C, Grupo AS G, Gravacao AS Gr, Artista AS A WHERE ( SELECT MAX(C2.avaliacao) FROM CD AS C2) AND C.referencia = Gr.cdReferencia AND Gr.artistaReferencia = A.referencia AND G.referencia = A.grupoReferencia Qual executo esta query aparece o que está no esquema abaixo e devia de aparecer apenas o grupo e a avaliação média dos CD'S nome avaliacao Bonny Light Horseman 3,34 Desertshore 3,71 Desertshore 3,93 GNR 3,52 Mler Ife Dada 0 Motorhead 3,37 Pink Floyd 3,45 Pink Floyd 3,86 Pink Floyd 3,98 Pink Floyd 4,13 Pink Floyd 4,3 Pink Floyd 4,5 Sun Kil Moon 3,25 Sun Kil Moon 3,42 The Doors 3,9 The Doors 4,11 Yo La Tengo 4,5 Link to comment Share on other sites More sharing options...
M6 Posted June 21, 2020 at 02:46 PM Report Share #618471 Posted June 21, 2020 at 02:46 PM Para agrupares tens de fazer um group by e se queres apenas acima de 4.0 tens de fazer um having. No entanto, não sei se não faz mais sentido usares a função de média, AVG (se não me falha a memória). 1 Report 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar." Link to comment Share on other sites More sharing options...
pc.cesar Posted August 11, 2020 at 09:03 PM Report Share #619016 Posted August 11, 2020 at 09:03 PM Evite usar o distinct , deve utilizar o group by SELECT G.nome, sum(g.avaliacao) soma, count(c.avaliacao) cont, sum(c.avaliacao)/ count(c.avaliacao) as aval FROM CD AS C, Grupo AS G, Gravacao AS Gr, Artista AS A WHERE ( SELECT MAX(C2.avaliacao) FROM CD AS C2) AND C.referencia = Gr.cdReferencia AND Gr.artistaReferencia = A.referencia AND G.referencia = A.grupoReferencia group by g.nome having sum(c.avaliacao)/ count(c.avaliacao)>3.5 César Faria Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now