Bases de Datos - Base de datos

 
Vista:
Imágen de perfil de Base de datos
Val: 1
Ha aumentado su posición en 2 puestos en Bases de Datos (en relación al último mes)
Gráfica de Bases de Datos

Base de datos

Publicado por Base de datos (1 intervención) el 09/06/2017 18:16:51
Necesito saber como hacer q me salga conteo de cuanto datos tengo ingresados por ejemplo
Select count cli_pais from clientes
Hay es solo para q me salga todo mis paises de mis clientes
Por ejemplo me saleria (10)ecuador
Pero suponganos q no solo tengo de ecuador si no tambien de otros paises eso es lo q necesito
Como hacer para que me muestre por ejempli
(8)ecuador
(1)mexico
(2)españa
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de [abZeroX]
Val: 61
Bronce
Ha mantenido su posición en Bases de Datos (en relación al último mes)
Gráfica de Bases de Datos

Base de datos

Publicado por [abZeroX] (17 intervenciones) el 10/06/2017 05:26:13
Hola, lo que puedes hacer es agrupar los clientes por pais y luego realizar el conteo:

Supongamos que cuentas con una tabla cliente y otra pais

CLIENTE
1
2
3
id  primary key,
name
pais FK

PAIS
1
2
id primary key
pais


DATOS DE EJEMPLO (CLIENTES)
1
2
3
4
5
6
7
8
9
10
11
12
+----+----------+------+
| id | name     | pais |
+----+----------+------+
|  1 | Juan      |    1 |
|  2 | Maria     |    1 |
|  3 | Pedro    |    1 |
|  4 | Agustin  |    2 |
|  5 | Ivan        |    2 |
|  6 | Veronica |    4 |
|  7 | Carlos     |    5 |
|  8 | Esteban  |    3 |
+----+----------+------+

DATOS DE EJEMPLO (PAIS)

1
2
3
4
5
6
7
8
9
10
11
12
+----+----------+------+
| id | name     | pais |
+----+----------+------+
|  1 | Juan      |    1 |
|  2 | Maria     |    1 |
|  3 | Pedro    |    1 |
|  4 | Agustin  |    2 |
|  5 | Ivan       |    2 |
|  6 | Veronica |    4 |
|  7 | Carlos     |    5 |
|  8 | Esteban  |    3 |
+----+----------+------+

CONSULTA

1
SELECT pais.pais as PAIS, count(*) as CANTIDAD_CLIENTES FROM pais, cliente WHERE cliente.pais = pais.id GROUP BY(cliente.pais);

RESULTADO:
1
2
3
4
5
6
7
8
9
+----------+---------------------------------+
| PAIS     | CANTIDAD_CLIENTES |
+----------+---------------------------------+
| Uruguay  |                 3                  |
| Brasil       |                 2                  |
| España    |                 1                 |
| Alemania |                 1                 |
| Ecuador   |                 1                 |
+----------+--------------------------------+

Nos comentas si es lo que buscabas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Francisco
Val: 107
Bronce
Ha mantenido su posición en Bases de Datos (en relación al último mes)
Gráfica de Bases de Datos

Base de datos

Publicado por Francisco (33 intervenciones) el 10/06/2017 19:03:06
La respuesta es agrupar por paises y contar en SQL:

1
2
3
SELECT paises.pais, Count(clientes.pais_id) AS Total_Clientes
FROM clientes RIGHT JOIN paises ON clientes.pais_id = paises.Id
GROUP BY paises.pais;

Claro puede que salga Paises con cero (0) resultados si quieres filtrar estos debes agregar un HAVING al final

1
2
3
4
SELECT paises.pais, Count(clientes.pais_id) AS CuentaDenombre
FROM clientes RIGHT JOIN paises ON clientes.pais_id = paises.Id
GROUP BY paises.pais
HAVING Count(clientes.pais_id) > 0;

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar