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

Consulta con mysql

Estas en el tema de Consulta con mysql en el foro de Mysql en Foros del Web. Hola, como ya he dicho anteriormente estoy empezando a manejar sql y tengo una duda en una consulta a ver si alguien me puede orientar ...
  #1 (permalink)  
Antiguo 04/10/2012, 08:53
 
Fecha de Ingreso: junio-2004
Mensajes: 57
Antigüedad: 19 años, 10 meses
Puntos: 0
Consulta con mysql

Hola, como ya he dicho anteriormente estoy empezando a manejar sql y tengo una duda en una consulta a ver si alguien me puede orientar

Tengo una tabla con perfiles llamada "PROFILES_USER" (muestro los 2 campos que nos interesan)

usuario_id----- idioma_id
------------- ----------------
1 ----------------- 5
1 ----------------- 6
1 ----------------- 7
2 ----------------- 6
2 ----------------- 7
3 ----------------- 7


Lo que necesito es sacar el numero total de usuarios que hablan un idioma en orden decreciente
es decir, que devuelva algo como...
(cantidad_usuarios,idioma_id)
1,5
6,2
7,3

Para ello lo he intentado hacer de la siguiente forma pero es errónea dado que unicamente me devuelve un resultado y no es el correcto claro está

Código MySQL:
Ver original
  1. SELECT COUNT( * ) AS total, perf1.idioma_id AS idioma_id
  2. FROM PROFILES_USER AS perf1, PROFILES_USER AS perf2
  3. WHERE perf1.perfil_idioma_id = perf2.perfil_idioma_id DESC
Gracias de antemano

Última edición por gnzsoloyo; 04/10/2012 a las 09:04 Razón: Etiqueta equivocada
  #2 (permalink)  
Antiguo 04/10/2012, 09:05
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Consulta con mysql

Hola Zhukov:

Esta es una consulta básica de SQL... me sorprende que tengas que recurrir a un foro de consulta para obtenerla, pero bueno, veamos a detalle...

En primer lugar, No hay necesidad de utilizar dos veces la misma tabla, a final de cuentas la información la tienes contenida en una sola tabla, Sin embargo NO ESTAS AGRUPANDO POR NINGÚN CRITERIO, por lo tanto el resultado es un total general. Lo que tendrías que hacer es algo como esto:

Código:
SELECT idioma_id, COUNT(*) total 
FROM profiles_user
GROUP BY idioma_id
ORDER BY 2 DESC
La opción marcada en rojo es lo que te permite sacar "subtotales" para cada idioma. Te recomiendo que le des un vistazo a cualquier manual básico de SQL, para que entiendas mejor el funcionamiento del GROUP BY, HAVING y todas las funciones de agrupación (COUNT, MIN, MAX, AVG, etc.)

Saludos
Leo.
  #3 (permalink)  
Antiguo 04/10/2012, 10:24
 
Fecha de Ingreso: junio-2004
Mensajes: 57
Antigüedad: 19 años, 10 meses
Puntos: 0
Respuesta: Consulta con mysql

Muchas gracias por la ayuda Leo, la verdad es que estoy empezando con sql y tengo la cabeza bastante saturada.

Muy agradecido por la ayuda de verdad

PD- Revisaré manuales como me indicas

Etiquetas: select, sql, tabla, 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 10:07.