Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

SELECT aparentemente simple

Estas en el tema de SELECT aparentemente simple en el foro de Oracle en Foros del Web. Buenas! Tengo que hacer la siguiente consulta: Día en el que más ventas se han realizado La tabla es la siguiente: COCINA( REF ,DESCRIPCION,CANTIDAD_MUEBLES,FECHA_VENTA,COD_DIST RIBUIDOR) ...
  #1 (permalink)  
Antiguo 24/05/2010, 07:25
Avatar de plantala  
Fecha de Ingreso: abril-2008
Ubicación: Jamaica
Mensajes: 176
Antigüedad: 16 años
Puntos: 1
SELECT aparentemente simple

Buenas!
Tengo que hacer la siguiente consulta:
Día en el que más ventas se han realizado

La tabla es la siguiente:

COCINA(REF,DESCRIPCION,CANTIDAD_MUEBLES,FECHA_VENTA,COD_DIST RIBUIDOR)

Pues bien, pensaba que seria sencillo, pero no se lo que estoy haciendo mal, pero no me sale.
Haciendo lo siguiente:

SELECT MAX(COUNT(FECHA_VENTA)) FROM COCINA GROUP BY FECHA_VENTA;

me sale cuanto es el mayor numero de ventas que se ha producido en un dia, y haciendo lo siguiente:

SELECT FECHA_VENTA,MAX(COUNT(FECHA_VENTA)) FROM COCINA GROUP BY FECHA_VENTA;

pensaba que me saldria el dia de maximas ventas, y cuantas ventas son, pero me da el siguiente error:
la función de grupo no es de grupo único
Que es lo que hago mal?
Gracias de antemano.
Un saludo.
__________________
"Independizate de la esclavitud mental; tan solo nosotros mismos podemos liberar nuestra mente"-Bob Marley
  #2 (permalink)  
Antiguo 24/05/2010, 09:05
Avatar de triqui  
Fecha de Ingreso: diciembre-2008
Ubicación: Zaragoza(España)
Mensajes: 624
Antigüedad: 15 años, 4 meses
Puntos: 31
Respuesta: SELECT aparentemente simple

Alo mejor es una barabaridad pero mete tu consulta dentro de un select y saca la cantidad, ordenalo por el mayor y haz un rownum, seguro que hay una forma más optima, pero si no te prima el rendimiento funciona:


Mira haber si esto te da una idea:

select tabla.FECHA_VENTA, MAX(tabla.total) total from(
select FECHA_VENTA,count(FECHA_VENTA) total from
(select '2010-08-10' FECHA_VENTA,5 CANTIDAD_MUEBLES from dual
union
select '2010-02-02' FECHA_VENTA,5 CANTIDAD_MUEBLES from dual
union
select '2010-08-10' FECHA_VENTA,7 CANTIDAD_MUEBLES from dual)
group by FECHA_VENTA order by total desc) tabla where rownum <=1 group by tabla.FECHA_VENTA



salu2
__________________
La nueva red social de quinielas quiniela resultados
Cazaresultados Futbol base en directo
  #3 (permalink)  
Antiguo 24/05/2010, 09:33
Avatar de plantala  
Fecha de Ingreso: abril-2008
Ubicación: Jamaica
Mensajes: 176
Antigüedad: 16 años
Puntos: 1
Respuesta: SELECT aparentemente simple

Buenas!
La verdad es que no he entendido muy bien lo que me dices, no conocia el ROWNUM (llevo dos años sin utilizar sql), y he estado mirando en internet, y no he entendido el concepto del rownum muy bien.
De todas formas, muchas gracias por la ayuda.
Alguna otra sugerencia?
Un saludo.
__________________
"Independizate de la esclavitud mental; tan solo nosotros mismos podemos liberar nuestra mente"-Bob Marley
  #4 (permalink)  
Antiguo 24/05/2010, 12:03
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: SELECT aparentemente simple

Si te entendí bien, solo corregiría un poco lo que te propone triqui

Código SQL:
Ver original
  1. SELECT
  2. t1.FECHA_VENTA,
  3. t1.total total
  4. FROM
  5. (
  6. SELECT  FECHA_VENTA,
  7.      COUNT(FECHA_VENTA) total
  8. FROM COCINA
  9. GROUP BY FECHA_VENTA
  10. ORDER BY total DESC
  11. ) t1
  12. WEHRE rownum <=1;

donde rownum es una pseudocolumna que hace un conteo de los registros mostrados en la consulta y puede ser utilizado para limitar la cantidad de registros a mostrar.

Pruebalo y nos cuentas
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 24/05/2010, 13:08
Avatar de plantala  
Fecha de Ingreso: abril-2008
Ubicación: Jamaica
Mensajes: 176
Antigüedad: 16 años
Puntos: 1
Respuesta: SELECT aparentemente simple

Perfecto!
Al final lo he puesto asi:

SELECT FECHA_VENTA FROM (SELECT FECHA_VENTA,COUNT(FECHA_VENTA)AS TOTAL FROM COCINA GROUP BY FECHA_VENTA ORDER BY TOTAL DESC) WHERE ROWNUM<=1;

Muchas gracias por la ayuda!
Un saludo!
__________________
"Independizate de la esclavitud mental; tan solo nosotros mismos podemos liberar nuestra mente"-Bob Marley

Etiquetas: select, simple
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:27.