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

Consulta sobre consultas

Estas en el tema de Consulta sobre consultas en el foro de Bases de Datos General en Foros del Web. Hola amigos, Os explico mi situacion. Quiero hacer una consulta sobre otra consulta y no se como hacerlo, os planteo el problema Tengo una tabla ...
  #1 (permalink)  
Antiguo 04/05/2012, 03:09
 
Fecha de Ingreso: diciembre-2010
Mensajes: 79
Antigüedad: 13 años, 4 meses
Puntos: 3
Consulta sobre consultas

Hola amigos,

Os explico mi situacion. Quiero hacer una consulta sobre otra consulta y no se como hacerlo, os planteo el problema

Tengo una tabla con las ciudades donde vive el usuario.

Pues bien lo que quiero hacer es mostrar la ciudad donde tengo mas usuario..

Mi consulta que hice es esta

Código SQL:
Ver original
  1. SELECT COUNT( * ) AS total , city FROM br_user GROUP BY city

Esta consulta me cuenta los usuario de cada ciudad, pero como puedo mostrar la ciudad con mas usuarios...

Es decir una cosa tal que asi, aunque se que esto no funciona

Código SQL:
Ver original
  1. SELECT city FROM (SELECT COUNT( * ) AS total , city FROM br_user GROUP BY city) WHERE MAX(total)=total
  #2 (permalink)  
Antiguo 04/05/2012, 13:38
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: Consulta sobre consultas

Aunque parece una consulta fácil, no es tan sencillo implementarla.

Te dejo una posible forma:

Código SQL:
Ver original
  1. SELECT city
  2. FROM (SELECT COUNT(*) AS total, city  
  3. FROM br_user
  4. GROUP BY city) AS temp INNER JOIN
  5. (SELECT MAX(total) AS maximo
  6. FROM
  7. (SELECT COUNT(*) AS total, city  
  8. FROM br_user
  9. GROUP BY city) AS temp2) AS temp3
  10. ON temp3.maximo = temp.total

o así

Código SQL:
Ver original
  1. SELECT city
  2. FROM
  3. (SELECT COUNT(*) AS total, city  
  4. FROM br_user
  5. GROUP BY city) AS temp
  6. WHERE total =
  7. (SELECT MAX(total) AS maximo
  8. FROM
  9. (SELECT COUNT(*) AS total, city  
  10. FROM br_user
  11. GROUP BY city) AS temp2)
  #3 (permalink)  
Antiguo 07/05/2012, 15:32
 
Fecha de Ingreso: diciembre-2010
Mensajes: 79
Antigüedad: 13 años, 4 meses
Puntos: 3
Respuesta: Consulta sobre consultas

Gracias!!. No sabia como hacerlo.
  #4 (permalink)  
Antiguo 08/05/2012, 06:32
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Consulta sobre consultas

Código SQL:
Ver original
  1. SELECT city FROM br_user GROUP BY city ORDER BY COUNT(*) DESC LIMIT 1;

Mas simple, no?
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Etiquetas: sql
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 12:14.