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

[Duda] Sumar campos y trabajar con esas sumas

Estas en el tema de [Duda] Sumar campos y trabajar con esas sumas en el foro de Bases de Datos General en Foros del Web. Hola a tod@s!! Estoy trabajando con la base de datos world, con tres tablas, city, country y countrylanguage. El problema que me surge es que ...
  #1 (permalink)  
Antiguo 07/04/2015, 08:27
 
Fecha de Ingreso: diciembre-2014
Mensajes: 11
Antigüedad: 9 años, 11 meses
Puntos: 0
[Duda] Sumar campos y trabajar con esas sumas

Hola a tod@s!! Estoy trabajando con la base de datos world, con tres tablas, city, country y countrylanguage.

El problema que me surge es que no tengo claro como trabajar con sumas de varios campos. Por ejemplo, quiero saber que continente es el más poblado. Primero necesito ir sumando las poblaciones para cada continente, que como ejemplo puedo hacer asi para Africa por ejemplo:
Código SQL:
Ver original
  1. SELECT SUM(Population) AS Africa FROM country
  2. WHERE Continent='Africa'
pero no se como seguir.

Mi idea era seguir sumando de igual forma y luego agruparlos con un GROUP BY, pero no se como...

Alguna ayuda por favor?? Muchisimas gracias!!

Última edición por gnzsoloyo; 07/04/2015 a las 09:30
  #2 (permalink)  
Antiguo 07/04/2015, 08:37
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: [Duda] Sumar campos y trabajar con esas sumas

en sql server podria ser algo como esto:

Código SQL:
Ver original
  1. SELECT
  2. CASE WHEN country='Africa' THEN SUM(population) END AS Africa,
  3. CASE WHEN country='Europa' THEN SUM(population) END AS Europa
  4. FROM country
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 07/04/2015, 08:47
 
Fecha de Ingreso: diciembre-2014
Mensajes: 11
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: [Duda] Sumar campos y trabajar con esas sumas

Cita:
Iniciado por Libras Ver Mensaje
en sql server podria ser algo como esto:

Código SQL:
Ver original
  1. SELECT
  2. CASE WHEN country='Africa' THEN SUM(population) END AS Africa,
  3. CASE WHEN country='Europa' THEN SUM(population) END AS Europa
  4. FROM country
Muchisimas gracias por la ayuda Libras. El problema es que me obligan a trabajar en MySQL. Te digo esto porque modificando para el continente tengo:

Código SQL:
Ver original
  1. SELECT
  2. CASE WHEN continent='Africa' THEN SUM(population) END AS Africa,
  3. CASE WHEN continent='Europa' THEN SUM(population) END AS Europa
  4. FROM country

Caundo lo hago el resultado en NULL, no se porque....


Gracias!

Última edición por fradyjavi; 07/04/2015 a las 08:55
  #4 (permalink)  
Antiguo 07/04/2015, 08:58
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: [Duda] Sumar campos y trabajar con esas sumas

podrias poner un pequeño ejemplo de los datos???
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 07/04/2015, 09:07
 
Fecha de Ingreso: diciembre-2014
Mensajes: 11
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: [Duda] Sumar campos y trabajar con esas sumas

En concreto el codigo que he usado ha sido:

Código SQL:
Ver original
  1. SELECT
  2. CASE WHEN Continent='Africa' THEN SUM(country.Population) END AS Africa,
  3. CASE WHEN Continent='Antarctica' THEN SUM(country.Population) END AS Antartida,
  4. CASE WHEN Continent='Asia' THEN SUM(country.Population) END AS Asia,
  5. CASE WHEN Continent='Europe' THEN SUM(country.Population) END AS Europa,
  6. CASE WHEN Continent='Oceania' THEN SUM(country.Population) END AS Oceania,
  7. CASE WHEN Continent='North America' THEN SUM(country.Population) END AS America,  
  8. CASE WHEN Continent='South America' THEN SUM(country.Population) END AS America2  
  9. FROM country

Solo me muestra cifra en America, en las demas NULL.

Con ejemplo te refieres a como son las tablas?? Si es asi, en la tabla country tengo cada ciudad (Name), población (population) y a que continente pertecene, entre otros datos. Si no es esto dimelo y te lo pongo ahora mismo.

Muchisimas gracias por la ayuda.
  #6 (permalink)  
Antiguo 07/04/2015, 09:19
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: [Duda] Sumar campos y trabajar con esas sumas

Yo no tengo la base de datos world(es mas no tengo mysql en mi pc) por lo que me ayudaria a entender tu problema con un ejemplo de los datos, la estructura no me sirve(esa ya la vi) lo que ocupo son los datos....
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #7 (permalink)  
Antiguo 07/04/2015, 09:24
 
Fecha de Ingreso: diciembre-2014
Mensajes: 11
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: [Duda] Sumar campos y trabajar con esas sumas

Creo que ya te entiendo, disculpame. Dentro de la tabla country tengo todas las ciudades y cada una al continente en el que esta, continent, que son los 7 tipos que puse en los cases y en population son numeros, el numero tal cual de la poblacion de cada ciudad.

Lo que quiero es agrupar el numero de habitantes de cada continente y saber cual es que tiene mayor numero de habitantes.

Gracias!!
  #8 (permalink)  
Antiguo 07/04/2015, 09:36
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: [Duda] Sumar campos y trabajar con esas sumas

Código MySQL:
Ver original
  1.   SUM(IF(Continent='Africa', Population, 0)) Africa,
  2.   SUM(IF(Continent='Antarctica', Population, 0)) Antartida,
  3.   SUM(IF(Continent='Asia', Population, 0)) Asia,
  4.   SUM(IF(Continent='Europe', Population, 0)) Europa,
  5.   SUM(IF(Continent='Oceania', Population, 0)) Oceania,
  6.   SUM(IF(Continent='North America', Population, 0)) America,  
  7.   SUM(IF(Continent='South America', Population, 0)) America2  
  8. FROM country;
Aunque en realidad debería ser así:
Código MySQL:
Ver original
  1.   Continent,
  2.   SUM(Population) Poblacion
  3. FROM country
  4. GROUP BY continent;
Y resolver la forma de mostrar la informacion por programación...
Hacer la query como la planteas es ineficiente e innecesario para los datos que quieres obtener.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 07/04/2015, 10:07
 
Fecha de Ingreso: diciembre-2014
Mensajes: 11
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: [Duda] Sumar campos y trabajar con esas sumas

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Código MySQL:
Ver original
  1.   SUM(IF(Continent='Africa', Population, 0)) Africa,
  2.   SUM(IF(Continent='Antarctica', Population, 0)) Antartida,
  3.   SUM(IF(Continent='Asia', Population, 0)) Asia,
  4.   SUM(IF(Continent='Europe', Population, 0)) Europa,
  5.   SUM(IF(Continent='Oceania', Population, 0)) Oceania,
  6.   SUM(IF(Continent='North America', Population, 0)) America,  
  7.   SUM(IF(Continent='South America', Population, 0)) America2  
  8. FROM country;
Aunque en realidad debería ser así:
Código MySQL:
Ver original
  1.   Continent,
  2.   SUM(Population) Poblacion
  3. FROM country
  4. GROUP BY continent;
Y resolver la forma de mostrar la informacion por programación...
Hacer la query como la planteas es ineficiente e innecesario para los datos que quieres obtener.
Muchisimas gracias por tu ayuda. Solo una duda mas. Si ahora por ejemplo quiero sumar america y oceania dentro de la consulta, como deberia hacerlo?? Gracias!!
  #10 (permalink)  
Antiguo 07/04/2015, 11:10
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: [Duda] Sumar campos y trabajar con esas sumas

Cita:
Solo una duda mas. Si ahora por ejemplo quiero sumar america y oceania dentro de la consulta, como deberia hacerlo?? Gracias!!




Mira la primera query y dime tu: ¿Cómo crees que deberías hacerlo? Tengo mis serias dudas de que necesites que te responda eso...

Simplemente sumas en la misma columna si es uno u otro, es decir: OR.

No hay magia, es simple razonamiento.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #11 (permalink)  
Antiguo 07/04/2015, 11:14
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: [Duda] Sumar campos y trabajar con esas sumas

Cita:
Iniciado por gnzsoloyo Ver Mensaje

No hay magia, es simple razonamiento.
Pero en ese razonamiento es donde reside la "Magia" y que no todos pueden encontrar jejejejejeje
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #12 (permalink)  
Antiguo 07/04/2015, 14:11
 
Fecha de Ingreso: diciembre-2014
Mensajes: 11
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: [Duda] Sumar campos y trabajar con esas sumas

Muchas gracias.

Etiquetas: campos, ejemplo, select, sumas, tabla
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 17:28.