PostgreSQL - Consulta segun yo erronea

 
Vista:

Consulta segun yo erronea

Publicado por Charly Brown (1 intervención) el 24/11/2017 04:50:07
Hola comunidad programadora
Disculpen que los moleste pero necesito ayuda de expertos
Hay una consulta que dice:
-- Nombre del equipo, estadio y ciudad a la que pertenecen aquellos equipos que mas punters tienen registrados

Y la respuesta fue:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
SELECT nombre_equipo,
	nombre_estadio,
	nombre_ciudad
FROM equipo
	NATURAL JOIN equipo_ciudad
	NATURAL JOIN ciudad
	NATURAL JOIN equipo_estadio
	NATURAL JOIN estadio
WHERE id_equipo IN (
 
SELECT jugador_equipo.id_equipo
FROM jugador
	NATURAL JOIN jugador_equipo
	NATURAL JOIN punter
GROUP BY jugador_equipo.id_equipo
HAVING COUNT(id_jugador) = (SELECT MAX(total)
	FROM (
		SELECT
			jugador_equipo.id_equipo,
			COUNT(id_jugador) AS total
		FROM jugador
			NATURAL JOIN jugador_equipo
			NATURAL JOIN punter
		GROUP BY jugador_equipo.id_equipo
 
	) AS T1))


Sin embargo yo digo que es asi

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
SELECT tackles
FROM(
SELECT Distinct ON (tackles) tackles,id_equipo_v AS id_equipo,COUNT(Distinct(id_partido)) AS t1
FROM Equipo INNER JOIN Partido ON equipo.id_equipo=partido.id_equipo_v natural join jugador natural join jugador_equipo natural join defensiva
WHERE temporada='2002'
GROUP BY id_equipo_v,tackles
UNION ALL
SELECT Distinct ON (tackles) tackles,id_equipo_l AS id_equipo,COUNT(Distinct(id_partido)) AS t1
FROM Equipo INNER JOIN Partido ON equipo.id_equipo=partido.id_equipo_l natural join jugador natural join jugador_equipo natural join defensiva
WHERE temporada='2002'
GROUP BY id_equipo_l,tackles) AS t2
GROUP BY id_equipo,tackles
HAVING SUM(t1)>(
SELECT AVG(partidos)
FROM(
SELECT id_equipo, SUM(t1) AS partidos
FROM(
SELECT id_equipo_v AS id_equipo ,nombre_equipo,nickname_equipo,COUNT(id_partido) AS t1
FROM Equipo JOIN Partido ON equipo.id_equipo=partido.id_equipo_v
WHERE temporada='2002'
GROUP BY nickname_equipo,nombre_equipo,id_equipo_v
UNION ALL
SELECT id_equipo_l AS id_equipo,nombre_equipo,nickname_equipo,COUNT(id_partido) AS t1
FROM Equipo JOIN Partido ON equipo.id_equipo=partido.id_equipo_L
WHERE temporada = '2002'
GROUP BY nickname_equipo,nombre_equipo,id_equipo_l) AS t4
GROUP BY id_equipo) AS t5)

Si alguien pudiera darme argumentos fuertes para debatir se los agradeceria mucho
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder