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

Seleccionar campo que no está en group by

Estas en el tema de Seleccionar campo que no está en group by en el foro de PostgreSQL en Foros del Web. Buenas, Tengo esta primera consulta @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código SQL: Ver original SELECT COUNT ( 1 ) AS total , fecha , n_tipo FROM solicitudes GROUP ...
  #1 (permalink)  
Antiguo 17/01/2013, 09:38
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 10 años, 7 meses
Puntos: 32
Seleccionar campo que no está en group by

Buenas,

Tengo esta primera consulta

Código SQL:
Ver original
  1. SELECT COUNT(1) AS total, fecha, n_tipo FROM solicitudes GROUP BY n_tipo, fecha;

que me da este resultado:



Cómo podría sacar el día que más consultas se han producido de determinado tipo?

Si hago:

Código SQL:
Ver original
  1. SELECT MAX(total) AS maximo, n_tipo FROM (SELECT COUNT(1) AS total, fecha, n_tipo FROM solicitudes GROUP BY n_tipo, fecha) AS consulta GROUP BY n_tipo

Me devuelve bien



Pero quiero tambien la fecha...

Entonces si hago:

Código SQL:
Ver original
  1. SELECT MAX(total) AS maximo, fecha, n_tipo FROM (SELECT COUNT(1) AS total, fecha, n_tipo FROM solicitudes GROUP BY n_tipo, fecha) AS consulta GROUP BY n_tipo, fecha

Me devuelve igual que la primera (lógico).

Y si hago

Código SQL:
Ver original
  1. SELECT MAX(total) AS maximo, fecha, n_tipo FROM (SELECT COUNT(1) AS total, fecha, n_tipo FROM solicitudes GROUP BY n_tipo, fecha) AS consulta GROUP BY n_tipo

Me dice la columna «consulta.fecha» debe aparecer en la cláusula GROUP BY o ser usada en una función de agregación...

Gracias.
  #2 (permalink)  
Antiguo 17/01/2013, 13:31
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.975
Antigüedad: 9 años, 6 meses
Puntos: 356
Respuesta: Seleccionar campo que no está en group by

Prueba asi:

Código SQL:
Ver original
  1. SELECT MAX(total) AS maximo,
  2. to_char(fecha,'YYYY-MM-DD') fecha,
  3. n_tipo FROM
  4. (SELECT COUNT(1) AS total, fecha, n_tipo
  5.  FROM solicitudes GROUP BY n_tipo, fecha) AS consulta
  6. GROUP BY n_tipo,to_char(fecha,'YYYY-MM-DD')

No he probado
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 18/01/2013, 00:43
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 10 años, 7 meses
Puntos: 32
Respuesta: Seleccionar campo que no está en group by

Cita:
Iniciado por huesos52 Ver Mensaje
Prueba asi:

Código SQL:
Ver original
  1. SELECT MAX(total) AS maximo,
  2. to_char(fecha,'YYYY-MM-DD') fecha,
  3. n_tipo FROM
  4. (SELECT COUNT(1) AS total, fecha, n_tipo
  5.  FROM solicitudes GROUP BY n_tipo, fecha) AS consulta
  6. GROUP BY n_tipo,to_char(fecha,'YYYY-MM-DD')

No he probado
Hola huesos52,

Tu consulta me dice que hay un error aquí "to_char(fecha,'YYYY-MM-DD') fecha". Quitando "fecha" el resultado es el mismo que mi primera consulta.

Yo creo que los tiros van por hacer un INNER JOIN con la misma primera consulta.

Seguiré investigando.

Gracias de todos modos.
  #4 (permalink)  
Antiguo 25/01/2013, 07:36
Avatar de RastaMart  
Fecha de Ingreso: noviembre-2006
Mensajes: 91
Antigüedad: 11 años, 9 meses
Puntos: 3
Respuesta: Seleccionar campo que no está en group by

No se que tan bien seria primero agrupar por fecha y luego por n_tipo
  #5 (permalink)  
Antiguo 28/01/2013, 01:47
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 10 años, 7 meses
Puntos: 32
Respuesta: Seleccionar campo que no está en group by

Cita:
Iniciado por RastaMart Ver Mensaje
No se que tan bien seria primero agrupar por fecha y luego por n_tipo
Hace exactamente los mismo......
  #6 (permalink)  
Antiguo 30/01/2013, 10:12
Avatar de RastaMart  
Fecha de Ingreso: noviembre-2006
Mensajes: 91
Antigüedad: 11 años, 9 meses
Puntos: 3
Respuesta: Seleccionar campo que no está en group by

SI es mysql, no es necesario agrupar la fecha, asi que lo puedes poner sin agregarlo en el gruop bye, revisalo....

Etiquetas: as, group, campos
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 14:21.