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

contar repeticiones de un registro

Estas en el tema de contar repeticiones de un registro en el foro de Mysql en Foros del Web. tengo un problema aparentemente facil de resolver pero que se ha complicado enormemente. En una tabla en que estan los alumnos inscritos a los cursos ...
  #1 (permalink)  
Antiguo 04/03/2011, 03:22
 
Fecha de Ingreso: noviembre-2007
Ubicación: santiagors
Mensajes: 6
Antigüedad: 16 años, 5 meses
Puntos: 0
contar repeticiones de un registro

tengo un problema aparentemente facil de resolver pero que se ha complicado enormemente.

En una tabla en que estan los alumnos inscritos a los cursos de un centro cultural necesito saber cuantos alumnos están inscritos a un sólo taller, cuantos alumnos a dos talleres, etc.

La tabla inscripcioncursos tiene los siguientes campos: idAlumnos, idCursos, Estado, FechaModificacion, Observaciones.

Este query me da un resultado equivocado y no entiendo porque:

SELECT COUNT(idAlumnos) AS contados FROM inscripcioncursos GROUP BY idAlumnos HAVING COUNT(idAlumnos)>1 ORDER BY contados ASC

cualquier ayuda se agradece.
  #2 (permalink)  
Antiguo 04/03/2011, 03:40
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 2 meses
Puntos: 89
Respuesta: contar repeticiones de un registro

Eso no te da cuantos alumnos estan en un curso si no en cuantos cursos esta un alumno, que es distinto.

¿Que quieres exactamente? ¿Por que te da error esa query?
  #3 (permalink)  
Antiguo 04/03/2011, 03:51
 
Fecha de Ingreso: abril-2008
Mensajes: 93
Antigüedad: 16 años
Puntos: 10
Respuesta: contar repeticiones de un registro

Mira a ver si te sirve esto:

Código:
SELECT numCursos , COUNT(idAlumnos)
  FROM (SELECT idAlumnos, COUNT(idCursos) AS numCursos 
		  FROM inscripcioncursos 
		 GROUP BY 1)
 GROUP BY 1
  #4 (permalink)  
Antiguo 04/03/2011, 03:52
 
Fecha de Ingreso: noviembre-2007
Ubicación: santiagors
Mensajes: 6
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: contar repeticiones de un registro

claro, lo que ocurre es que no quiero saber en cuantos cursos está un alumno, sino que en cuantos cursos están todos los alumnos.

Es decir, necesito un output que me permita decir:

alumnos inscritos en 2 cursos : 6
alumnos inscritos en 3 cursos : 9
alumnos inscritos en 4 cursos : 45
etc.

el query me da una fila por cada alumno con 2 cursos inscritos, con 3 alumnos inscritos, etc. No está mal, pero para obtener el resultado tendría que contar cuantas filas en que "contados" = 2 para saber cualtos alumnos tienen 2 cursos inscritos y así sucesivamente.

Simplemente, no sé como agregar ese paso que me falta y plantear el query para eso.
  #5 (permalink)  
Antiguo 04/03/2011, 04:05
 
Fecha de Ingreso: noviembre-2007
Ubicación: santiagors
Mensajes: 6
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: contar repeticiones de un registro

Cita:
Iniciado por reivaj01 Ver Mensaje
Mira a ver si te sirve esto:

Código:
SELECT numCursos , COUNT(idAlumnos)
  FROM (SELECT idAlumnos, COUNT(idCursos) AS numCursos 
		  FROM inscripcioncursos 
		 GROUP BY 1)
 GROUP BY 1
reivaj01, al intentarlo me arroja el siguiente error:

#1248 - Every derived table must have its own alias

Intenté poniendo el AS a cada count, pero tampoco resultó.
  #6 (permalink)  
Antiguo 04/03/2011, 04:05
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 2 meses
Puntos: 89
Respuesta: contar repeticiones de un registro

Pon el AS a la tabla, que es lo que te dice el error

Código SQL:
Ver original
  1. SELECT numCursos , COUNT(idAlumnos)
  2.   FROM (SELECT idAlumnos, COUNT(idCursos) AS numCursos
  3.           FROM inscripcioncursos
  4.          GROUP BY 1) AS TABLA
  5.  GROUP BY 1
  #7 (permalink)  
Antiguo 04/03/2011, 04:10
 
Fecha de Ingreso: noviembre-2007
Ubicación: santiagors
Mensajes: 6
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: contar repeticiones de un registro

resultó. muchisimas gracias.

:D

Etiquetas: registro
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 22:48.