Donar $20 Donar $50 Donar $100 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
Empleado de Fotocopiadora
Ingeniero hasta la muerte
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 38
Agradecimientos dados: 153
Agradecimientos: 7 en 1 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.984
Agradecimientos dados: 9
Agradecimientos: 161 en 67 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
El alma es el espejo de un uni...
*******

Ing. Electrónica
Facultad Regional Buenos Aires

Mensajes: 847
Agradecimientos dados: 44
Agradecimientos: 23 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: 128px-Leibnitz_signature.svg.png]
24-07-2014 21:57
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Danlco Sin conexión
Empleado de Fotocopiadora
Ingeniero hasta la muerte
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 38
Agradecimientos dados: 153
Agradecimientos: 7 en 1 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.736
Agradecimientos dados: 150
Agradecimientos: 103 en 69 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.984
Agradecimientos dados: 9
Agradecimientos: 161 en 67 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.736
Agradecimientos dados: 150
Agradecimientos: 103 en 69 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.984
Agradecimientos dados: 9
Agradecimientos: 161 en 67 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.736
Agradecimientos dados: 150
Agradecimientos: 103 en 69 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.736
Agradecimientos dados: 150
Agradecimientos: 103 en 69 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.984
Agradecimientos dados: 9
Agradecimientos: 161 en 67 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
El alma es el espejo de un uni...
*******

Ing. Electrónica
Facultad Regional Buenos Aires

Mensajes: 847
Agradecimientos dados: 44
Agradecimientos: 23 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: 128px-Leibnitz_signature.svg.png]
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)



    This forum uses Lukasz Tkacz MyBB addons.