2010-04-13 22 views
7

digamos MySQL es algo como estogrupo mysql y contar problema filas

select x,y 
from xx 
group by y 

quiero saber cuántas filas que seleccione recibirá, traté de usar la cuenta pero no va a devolver todos los resultados ya que estoy usando group by

cómo hacerlo?

Gracias

+0

¿Quieres saber cuántas filas hay en cada grupo? ¿O cuántas filas hay en todos los grupos? O cuantos grupos? – keithjgrant

+0

todas las filas que esta selección devuelve – trrrrrrm

Respuesta

14

Usted puede envolver su consulta, así:

SELECT COUNT(*) FROM 
    (select x,y 
    from xx 
    group by y) sub; 
+3

¿Alguna idea de cómo se podría hacer esto si el servidor MySQL en cuestión no permite subconsultas? –

0

Suponga que tiene una tabla con el contenido a continuación:

------------------- 
| ID | NAME | GROUP | 
+-------------------+ 
| 1 | A | 1 | 
+-------------------+ 
| 2 | B | 2 | 
+-------------------+ 
| 3 | C | 2 | 
+-------------------+ 
| 4 | D | 3 | 
+-------------------+ 
| 5 | E | 1 | 
+-------------------+ 
| 6 | F | 3 | 
+-------------------+ 

El siguiente auto LEFT JOIN cuenta el número de valores distintos en GRUPO.

SELECT COUNT(*) 
FROM table AS t1 
LEFT JOIN table AS t2 ON t2.GROUP = t1.GROUP AND t2.ID > t1.ID 
WHERE t2.id IS NULL; 

Lo que hace esta consulta es averiguar, para cada grupo, el elemento con la identificación más alta.

Cuestiones relacionadas