¿Calcular la suma de las partes de la columna en base a otra columna usando la calculadora de campo de QGIS?

14

Me gustaría calcular la suma de valores en una columna, en base a los valores en otra columna. Para ilustrar mi pregunta subí la foto de abajo. La segunda columna consta de códigos postales, la tercera venta total. Me gustaría saber cuáles son las ventas totales por código postal? Así que en este caso:

¿Cuál es la suma de la columna tres para el valor de la columna dos 1023 ? La salida debería ser 4 (0+1+1+2+0) . La suma para 1024 debería ser 11,5 siguiendo la misma lógica.

Como este es un conjunto de datos bastante grande, me gustaría que la calculadora de campo QGIS (o cualquier otra herramienta) calcule un nuevo campo que indique las ventas totales en el código postal. Hasta ahora, parece que no puedo hacerlo funcionar y esperaba que alguien aquí pudiera ayudarme.

Como puede ver, tengo algunos valores faltantes, ¿es esto un problema en el cálculo? Quizás es bueno mencionar que es una tabla.

    
pregunta Ammar 02.03.2016 - 10:00

3 respuestas

22

Actualización: QGIS 2.18 (07/07/2017):

En la Calculadora de campo , puede usar la función Agregado sum , que le permite sumar los valores de una columna en función de una expresión. También puede, opcionalmente, agrupar y filtrar características para sumar. Entonces, en su calculadora de campo, simplemente podría usar:

sum( "Sum", "Sales")

Que hace exactamente lo mismo que el método que usa el complemento GroupStats .

Publicación original: 02/03/2016

Use el complemento GroupStats que puede necesitar descargar de Plugins > Administrar e instalar complementos .

Aquí hay una capa de ejemplo que utiliza algunos de los atributos que has mostrado:

Asíquevamosa:

  1. EjecuteelGroupStats,seleccioneloscamposrelevantesparasumar(Salesparafilas;Sumparavalores)yluegohagaclicenCalcular.Deberíaverlosresultadosquemuestranlasumadecadaventa:

  2. Guardelosresultadoscomounarchivo.csvdesdelabarradeherramientasdeGroupStats:

  3. Importeelarchivo.csvdenuevoaQGISarrastrándoloalainterfazodesdelabarradeherramientas:

    Capa>Añadircapa>Agregarcapadetextodelimitado(tengaencuentaquelosvaloresestánseparadosporpuntoycoma)

  4. HazunCombinacionesconelshapefileyelarchivo.csv,haciendocoincidirloscamposSales:

  5. Elshapefileahoradebecontenerlosvaloresdesumadelarchivo.csv:

Si lo desea, podría utilizar la opción Save As... en el shapefile y guardarla como una nueva para mantener los campos unidos.

    
respondido por el Joseph 02.03.2016 - 12:12
11

Si actualiza a la última versión de QGIS 2.14, puede usar capas virtuales para hacer una declaración de SQL como:

SELECT "MYTABLE"."MYID", Sum("MYTABLE"."SALES")  AS zip_sale /*:int*/
FROM "MYTABLE"
GROUP BY "MYTABLE"."ZIPCODE"

La interfaz de usuario se ve como:

Tambiénpuedeusareladministradordebasededatos,dondetieneungeneradordeconsultasdetrásdelbotónsql:

LacolumnaMYIDsepuedeusarparaunirlasventassumadasalatablaprincipal.Lapestañadeuniónestádebajodelaspropiedadesdelatabla.

Echeunvistazoal lista de cambios visual de QGIS en Feature: Virtual layers

    
respondido por el Jakob 02.03.2016 - 11:49
6

Una forma de hacer esto es la siguiente:

  • En la tabla de atributos, elija seleccionar por característica. Escriba "nombre-columna" = 1023. Se seleccionan todos los campos con el valor 1023.
  • Ir a herramientas vectoriales - > Analizando herramientas - > estadísticas basicas Elige tu capa y la columna con las ventas. Asegúrese de marcar la casilla de verificación "solo valores seleccionados". La suma se mostrará en la ventana de resultados. Tienes que escribirlo;)
  • repita los pasos para cada código postal
respondido por el Miron 02.03.2016 - 10:23

Lea otras preguntas en las etiquetas