Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
[APORTE] Final Gestión de Datos 26/07/2016
Autor Mensaje
alejandro_g_a Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 2
Agradecimientos dados: 0
Agradecimientos: 1 en 1 posts
Registro en: Jul 2016
Mensaje: #1
[APORTE] Final Gestión de Datos 26/07/2016 Finales Gestión de Datos
Buenas,

les dejo el final de gdd que tomaron hoy, alguien lo pudo conseguir y le saque foto. Creo que la teoría era bastante accesible y el primero de la parte práctica también (a mi particularmente me confunde el 3b). Dieron los 5 minutos para verlo e irse.
Saludos!



[img][Imagen: t5ga5f.png][/img]
26-07-2016 22:10
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] alejandro_g_a recibio 1 Gracias por este post
NoSomosNada (07-10-2016)
Diesel Sin conexión
Campeon del cubo Rubik
5to año loading
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 125
Agradecimientos dados: 93
Agradecimientos: 263 en 24 posts
Registro en: Sep 2012
Mensaje: #2
RE: [APORTE] Final Gestión de Datos 26/07/2016
Buenas !
La practica :
Detecte dos errores...
En la condicion where el count(*)> no va.. va en el having. Having count(*)> valor
y lo que esta en el having eso no va sino que va en el where ,no?

De que manera se puede hacer mas performante?? ese tipo de cosas no las se. Ideas?
27-07-2016 09:32
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Martin. Sin conexión
Presidente del CEIT
Enjoy it !
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.353
Agradecimientos dados: 85
Agradecimientos: 241 en 125 posts
Registro en: Oct 2011
Mensaje: #3
RE: [APORTE] Final Gestión de Datos 26/07/2016
Hm... no puedo ver la imagen.
Alguno sería tan amable de subirla nuevamente?.

[Imagen: jQJfyBGh9SOmZ.png]
27-07-2016 10:08
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
cincue Sin conexión
Campeon del cubo Rubik
A toda mostaza
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 140
Agradecimientos dados: 25
Agradecimientos: 19 en 6 posts
Registro en: Mar 2013
Mensaje: #4
RE: [APORTE] Final Gestión de Datos 26/07/2016
(27-07-2016 09:32)Diesel escribió:  Buenas !
La practica :
Detecte dos errores...
En la condicion where el count(*)> no va.. va en el having. Having count(*)> valor
y lo que esta en el having eso no va sino que va en el where ,no?

De que manera se puede hacer mas performante?? ese tipo de cosas no las se. Ideas?

Te falto la del GROUP BY, faltaba agregar un campo. Y la que la mayoría se comió fue que faltaba el ON en el JOIN, o sea la condición del WHERE iba en el join. Y después no estoy seguro pero puse que en el SELECT del HAVING no esta necesario poner ese ORDER BY
27-07-2016 11:55
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Martin. Sin conexión
Presidente del CEIT
Enjoy it !
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.353
Agradecimientos dados: 85
Agradecimientos: 241 en 125 posts
Registro en: Oct 2011
Mensaje: #5
RE: [APORTE] Final Gestión de Datos 26/07/2016
Bueno...
Van los errores de la query:

1/. Falta el ON en el INNER JOIN entre las tasblas.
2/. El Count(*) va en el having
3/. Falta agregar al group by t1.col1
3/ No es necesariamente un error de sintaxis, pero el IN puede ir en el Where y no necesariamente en el having (incluso es mas "perfomante").

Query Performante:



SELECT T1.ID, T1.COL1 + T1.COL2, COUNT(T2.T3_ID)
FROM T1 INNER JOIN T2
ON T1.ID = T2.ID AND EXISTS (SELECT 1 FROM T3 FROM T3.ID = T1.ID)
GROUP BY T1.ID, T1.COL1, T1.COL2
HAVING COUNT(1) > 1


Eso es lo más "performante" que se puede hacer la consulta SQL con los conocimientos que se pueden adquirir en gestión.
Luego se puede hacer mejor agregando nolock a las tablas para que no se bloqueen, forzar uso de indices a las columnas, etc etc.

[Imagen: jQJfyBGh9SOmZ.png]
27-07-2016 15:43
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] Martin. recibio 3 Gracias por este post
Diesel (02-08-2016), speedy10 (22-09-2016), Sir Ulrich (06-03-2017)
speedy10 Sin conexión
Campeon del cubo Rubik
En camino...
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 169
Agradecimientos dados: 72
Agradecimientos: 17 en 15 posts
Registro en: Jun 2008
Mensaje: #6
RE: [APORTE] Final Gestión de Datos 26/07/2016
(27-07-2016 15:43)Martin. escribió:  Van los errores de la query:

1/. Falta el ON en el INNER JOIN entre las tasblas.
2/. El Count(*) va en el having
3/. Falta agregar al group by t1.col1
3/ No es necesariamente un error de sintaxis, pero el IN puede ir en el Where y no necesariamente en el having (incluso es mas "perfomante").

Agrego una 4/. La clausula ORDER BY no es válida en subconsultas, asi que hay que sacarlo también para que funcione la consulta original.


(27-07-2016 15:43)Martin. escribió:  


... (SELECT 1 FROM T3 FROM T3.ID = T1.ID)
...


Puede ser que esto sea: SELECT 1 FROM T3 ON T3.ID = T1.ID
(Este mensaje fue modificado por última vez en: 22-09-2016 17:57 por speedy10.)
22-09-2016 17:36
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
chdonof Sin conexión
Empleado del buffet
...
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 18
Agradecimientos dados: 4
Agradecimientos: 9 en 5 posts
Registro en: Dec 2013
Mensaje: #7
RE: [APORTE] Final Gestión de Datos 26/07/2016
(22-09-2016 17:36)speedy10 escribió:  
(27-07-2016 15:43)Martin. escribió:  Van los errores de la query:

1/. Falta el ON en el INNER JOIN entre las tasblas.
2/. El Count(*) va en el having
3/. Falta agregar al group by t1.col1
3/ No es necesariamente un error de sintaxis, pero el IN puede ir en el Where y no necesariamente en el having (incluso es mas "perfomante").

Agrego una 4/. La clausula ORDER BY no es válida en subconsultas, asi que hay que sacarlo también para que funcione la consulta original.


(27-07-2016 15:43)Martin. escribió:  


... (SELECT 1 FROM T3 FROM T3.ID = T1.ID)
...


Puede ser que esto sea: SELECT 1 FROM T3 ON T3.ID = T1.ID

Seria Así: SELECT 1 FROM T3 WHERE T3.ID = T1.ID

Con respecto a que la query tenga la mejor performance, el exists no seria mejor ponerlo en el having... asi lo hace solo para los grupos que cumplen la condicion y no para todos los registros de la tabla T1...
no se q sera mas costoso si agrupar y despues descartar solo uno o descartar de a uno y no agrupar...
(Este mensaje fue modificado por última vez en: 05-02-2017 15:57 por chdonof.)
05-02-2017 15:42
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Andres_utn Sin conexión
Militante
Sin estado :(
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 59
Agradecimientos dados: 21
Agradecimientos: 0 en 0 posts
Registro en: Apr 2014
Mensaje: #8
RE: [APORTE] Final Gestión de Datos 26/07/2016
Paso mis respuestas, rindo mañana asi que espero estar rumbeado jajaj.

1 a) F
1 b) F

2 a) y b) esta en todos los apuntes que hay por aca

3 a)

Puse en el from el join esta mal falta el on y la igualdad, where no se pueden usar func de grupo, en el group by falta t2.t3_id, creo que en el select si sumas 2 cosas tenes que ponerlas entre ().

3b)

SELECT T1.ID, T1.COL1 + T1.COL2, COUNT(T2.T3_ID)
FROM T1 JOIN T2 ON T1.ID = T2.ID
WHERE T1.ID IN (SELECT 1 FROM T3 FROM T3.ID = T1.ID)
GROUP BY T1.ID, T1.COL1, T1.COL2
HAVING COUNT(*) > 1

Saludos
10-07-2017 13:18
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 1 invitado(s)



    This forum uses Lukasz Tkacz MyBB addons.