Documentos de Académico
Documentos de Profesional
Documentos de Cultura
promedios, obtener valores mximos y mnimos. Tambin dijimos que dichas funciones operan
sobre conjuntos de registros, no con datos individuales.
Generalmente esta funciones se combinan con la sentencia "group by", que agrupa registros para
consultas detalladas.
Queremos saber la cantidad de visitantes de cada ciudad, podemos tipear la siguiente sentencia:
select count(*) from visitantes
where ciudad='Cordoba';
y repetirla con cada valor de "ciudad":
select
where
select
where
...
group by sexo;
Para saber el mximo y mnimo valor de compra agrupados por sexo:
select
group
select
group
Se pueden simplificar las 2 sentencias anteriores en una sola sentencia, ya que usan el mismo
"group by":
select sexo, max(montocompra),
min(montocompra)
from visitantes
group by sexo;
Para calcular el promedio del valor de compra agrupados por ciudad:
select ciudad, avg(montocompra) from visitantes
group by ciudad;
Podemos agrupar por ms de un campo, por ejemplo, vamos a hacerlo por "ciudad" y "sexo":
select ciudad, sexo, count(*) from visitantes
group by ciudad,sexo;
Tambin es posible limitar la consulta con "where".
Vamos a contar y agrupar por ciudad sin tener en cuenta "Cordoba":
select ciudad, count(*) from visitantes
where ciudad<>'Cordoba'
group by ciudad;
Podemos usar las palabras claves "asc" y "desc" para una salida ordenada:
select ciudad, count(*) from visitantes
group by ciudad desc;
se supone que tienes una tabla con dos campos articulo y el precioArticulo entonces quieres
sumar todos los precios de un articulo solo tienes que realizar esta consulta
SELECT articulo, sum(precioArticulo) as suma FROM $tabla group by
articulo
El where no es obligatorio en las consultas.
Podrias usar Having suma > 10 para indicar los articulos cuyo precio es mayor a 10.
Ver original
1. SELECT count(*)
2. FROM (SELECT cedula FROM lista GROUP BY cedula) AS Total;
Hola Nuc134rB0t:
Si bien ya resolviste tu problema, te comento que hay otra forma de llegar al mismo
resultado sin necesidad de utilizar subconsultas. El operador COUNT soporta
modificador DISTINCT, de tal manera que puedes hacer algo como esto:
Cdigo:
SELECT COUNT(DISTINCT cedula) FROM lista;
Checa este script, observa que tu consulta y esta consulta arrojan el mismo resultado.
Cdigo MySQL:
Ver original
1 |
100 | PEDRO
6. |
2 |
100 | PEDRO
7. |
3 |
100 | PEDRO
8. |
4 |
102 | JOSE
9. |
5 |
102 | JOSE
10. |
6 |
135 | MGUEL
11. +---------+--------+--------+
12. 6 rows in set (0.00 sec)
13.
14. mysql> SELECT COUNT(*)
15.
16.
17. +----------+
18. | COUNT(*) |
19. +----------+
20. |
3 |
21. +----------+
22. 1 row in set (0.00 sec)
23.
24. mysql> SELECT COUNT(DISTINCT cedula) FROM lista;
25. +------------------------+
26. | COUNT(DISTINCT cedula) |
27. +------------------------+
28. |
3 |
29. +------------------------+
30. 1 row in set (0.00 sec)
Saludos
Leo