Seguimos buscando a Arshak. Ayudanos compartiendo!
Encuesta no oficial de docentes
Resultados de la encuesta no oficial de docentes
Probaste el SIGA Helper?

Donar $100 Donar $200 Donar $500 Donar mensualmente


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
Consulta Ejercicio Practica SQL
Autor Mensaje
Danlco Sin conexión
Militante
Ingeniero hasta la muerte
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 64
Agradecimientos dados: 266
Agradecimientos: 29 en 12 posts
Registro en: Jun 2008
Mensaje: #1
Consulta Ejercicio Practica SQL Ejercicios Gestión de Datos
Hola a tod@s gente copada del foro!

Les pido ayuda con un ejercicio que no me sale, curse la materia en el 2010 y estoy un poco oxidado...wall

Ejercicio 15 de la practica actual:

Escriba una consulta que retorne los pares de productos que hayan sido vendidos
juntos (en la misma factura) más de 500 veces. El resultado debe mostrar el código
y descripción de cada uno de los productos y la cantidad de veces que fueron
vendidos juntos. El resultado debe estar ordenado por la cantidad de veces que se
vendieron juntos dichos productos. Los distintos pares no deben retornarse más de
una vez.

y yo lo resuelvo de esta forma:

select p1.prod_codigo, p1.prod_detalle, p2.prod_codigo, p2.prod_detalle, COUNT (*) as Cantidad

from Producto p1, Producto p2, Item_Factura i, Item_Factura i2

where p1.prod_codigo=i.item_producto and
p2.prod_codigo=i2.item_producto and
i.item_numero=i2.item_numero and
p1.prod_codigo != p2.prod_codigo

group by p1.prod_codigo, p1.prod_detalle, p2.prod_codigo, p2.prod_detalle

having COUNT (*) > 500

y me devuelve esto:
00001718 PHILIPS MORRIS KS 00001705 PHILIPS MORRIS BOX 10 562
00001705 PHILIPS MORRIS BOX 10 00001718 PHILIPS MORRIS KS 562
00001731 MARLBORO KS 00001718 PHILIPS MORRIS KS 507
00001718 PHILIPS MORRIS KS 00001731 MARLBORO KS 507

como hago para eliminar los repetidos, ya que distinct no lo hace....

gracias desde ya !

Saludos =)
24-07-2014 20:44
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Dem0 Sin conexión
( ͡° ͜ʖ ͡°)
._.
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 4.980
Agradecimientos dados: 9
Agradecimientos: 194 en 74 posts
Registro en: Apr 2008
Mensaje: #2
RE: Consulta Ejercicio Practica SQL
pasá las tablas
24-07-2014 21:00
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
eugenio Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 9
Agradecimientos dados: 0
Agradecimientos: 1 en 1 posts
Registro en: Aug 2008
Mensaje: #3
RE: Consulta Ejercicio Practica SQL
Si siempre muestra todos los pares repetidos, quiero decir, si te devuelve n filas y vos quisieras n/2, se me ocurre que podés cambiar la cuarta condición

p1.prod_codigo != p2.prod_codigo

por esta otra:

p1.prod_codigo < p2.prod_codigo

(si los códigos son integers).

Saludos
24-07-2014 21:44
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] eugenio recibio 1 Gracias por este post
Danlco (24-07-2014)
leibniz Sin conexión
Secretario General

*******

Ing. Electrónica
Facultad Regional Buenos Aires

Mensajes: 849
Agradecimientos dados: 46
Agradecimientos: 24 en 17 posts
Registro en: Dec 2012
Mensaje: #4
RE: Consulta Ejercicio Practica SQL
No sé mucho de SQL, así que tomá todo lo que te digo con pinzas.

Los resultados aparecen dos veces porque estas cruzando los datos de la tabla consigo misma... no sería más fácil hacer que cuente las ocurrencias de cada par de productos? Supongo que habría que probar que es más rápido...

[Imagen: Leibnitz_signature.svg]
24-07-2014 21:57
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Danlco Sin conexión
Militante
Ingeniero hasta la muerte
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 64
Agradecimientos dados: 266
Agradecimientos: 29 en 12 posts
Registro en: Jun 2008
Mensaje: #5
RE: Consulta Ejercicio Practica SQL
(24-07-2014 21:44)eugenio escribió:  Si siempre muestra todos los pares repetidos, quiero decir, si te devuelve n filas y vos quisieras n/2, se me ocurre que podés cambiar la cuarta condición

p1.prod_codigo != p2.prod_codigo

por esta otra:

p1.prod_codigo < p2.prod_codigo

(si los códigos son integers).

Saludos

sii correctisimo ! que grande!....gracias che!
24-07-2014 22:12
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Vallo Sin conexión
Mejor Firma 2011
HAHAHAHAH

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 2.745
Agradecimientos dados: 154
Agradecimientos: 125 en 79 posts
Registro en: Sep 2009
Mensaje: #6
RE: Consulta Ejercicio Practica SQL
más allá del ejercicio, te recomiendo usar JOINS en lugar del producto cartesiano de tablas, es mucho más rápido y eliminás los repetidos o manejas los null de forma más simple.

[Imagen: MIsnAz2.png]
24-07-2014 22:27
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] Vallo recibio 1 Gracias por este post
Danlco (27-07-2014)
Dem0 Sin conexión
( ͡° ͜ʖ ͡°)
._.
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 4.980
Agradecimientos dados: 9
Agradecimientos: 194 en 74 posts
Registro en: Apr 2008
Mensaje: #7
RE: Consulta Ejercicio Practica SQL
(24-07-2014 22:27)Vallo escribió:  más allá del ejercicio, te recomiendo usar JOINS en lugar del producto cartesiano de tablas, es mucho más rápido y eliminás los repetidos o manejas los null de forma más simple.

los motores (como la gente) se dan cuenta y hacen inner join.
24-07-2014 22:31
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Vallo Sin conexión
Mejor Firma 2011
HAHAHAHAH

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 2.745
Agradecimientos dados: 154
Agradecimientos: 125 en 79 posts
Registro en: Sep 2009
Mensaje: #8
RE: Consulta Ejercicio Practica SQL
(24-07-2014 22:31)Dem0 escribió:  
(24-07-2014 22:27)Vallo escribió:  más allá del ejercicio, te recomiendo usar JOINS en lugar del producto cartesiano de tablas, es mucho más rápido y eliminás los repetidos o manejas los null de forma más simple.

los motores (como la gente) se dan cuenta y hacen inner join.

ah mirá vos. Recuerdo que en el tp de datos había hecho el producto cartesiano en el "script inicial" y tardaba como quince min...lo cambié por un inner join y modifiqué el where, y bajó a 3 minutos. Estuve 10 minutos asombrado (?

[Imagen: MIsnAz2.png]
24-07-2014 22:44
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Dem0 Sin conexión
( ͡° ͜ʖ ͡°)
._.
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 4.980
Agradecimientos dados: 9
Agradecimientos: 194 en 74 posts
Registro en: Apr 2008
Mensaje: #9
RE: Consulta Ejercicio Practica SQL
¿qué db era?

(en realidad no es el "motor" el que lo interpreta como inner join, sino el optimizador)
24-07-2014 23:17
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Vallo Sin conexión
Mejor Firma 2011
HAHAHAHAH

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 2.745
Agradecimientos dados: 154
Agradecimientos: 125 en 79 posts
Registro en: Sep 2009
Mensaje: #10
RE: Consulta Ejercicio Practica SQL
sql server express usando el management studio. el tp de la cátedra

[Imagen: MIsnAz2.png]
24-07-2014 23:43
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Delshire Sin conexión
Empleado del buffet
Solo se que no se nada.
*

-----
-----

Mensajes: 12
Agradecimientos dados: 2
Agradecimientos: 2 en 2 posts
Registro en: Mar 2014
Mensaje: #11
RE: Consulta Ejercicio Practica SQL
Tirando un off: En que materia cursas sql en la carreara?
25-07-2014 00:40
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Alex! Sin conexión
Militante
C.A.B.J
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 86
Agradecimientos dados: 33
Agradecimientos: 2 en 1 posts
Registro en: Jan 2014
Mensaje: #12
RE: Consulta Ejercicio Practica SQL
Si no pasas las tablas es medio complicado entender las cosas =P
25-07-2014 01:00
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Vallo Sin conexión
Mejor Firma 2011
HAHAHAHAH

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 2.745
Agradecimientos dados: 154
Agradecimientos: 125 en 79 posts
Registro en: Sep 2009
Mensaje: #13
RE: Consulta Ejercicio Practica SQL
(25-07-2014 00:40)Delshire escribió:  Tirando un off: En que materia cursas sql en la carreara?

gestión de datos en tercer año

[Imagen: MIsnAz2.png]
25-07-2014 08:02
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Dem0 Sin conexión
( ͡° ͜ʖ ͡°)
._.
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 4.980
Agradecimientos dados: 9
Agradecimientos: 194 en 74 posts
Registro en: Apr 2008
Mensaje: #14
RE: Consulta Ejercicio Practica SQL
(25-07-2014 01:00)Alex! escribió:  Si no pasas las tablas es medio complicado entender las cosas =P

serían:

Producto: prod_codigo(PK), prod_detalle
Item_Factura: item_numero(PK), item_producto(PK)
25-07-2014 09:23
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
leibniz Sin conexión
Secretario General

*******

Ing. Electrónica
Facultad Regional Buenos Aires

Mensajes: 849
Agradecimientos dados: 46
Agradecimientos: 24 en 17 posts
Registro en: Dec 2012
Mensaje: #15
RE: Consulta Ejercicio Practica SQL
Recién ahora entiendo por qué funcionó. jajajaj

Que bueno que haya motores 'como la gente'.

[Imagen: Leibnitz_signature.svg]
28-07-2014 11:00
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)