Me gustaría calcular la suma de valores en una columna, en función de los valores en otra columna. Para ilustrar mi pregunta, cargué la imagen a continuación. La segunda columna consta de códigos postales, el tercer total de ventas. ¿Me gustaría saber cuáles son las ventas totales por código postal? Entonces en este caso:
¿Cuál es la suma de la columna tres para el valor de la columna dos 1023
? Salida entonces debe ser 4 (0+1+1+2+0)
. La suma para 1024
entonces 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 el momento parece que no puedo hacerlo funcionar y esperaba que alguien aquí pudiera ayudarme.
Como puede ver, me faltan algunos valores, ¿es un problema de cálculo? Quizás sea bueno mencionar que es una mesa.
fuente
Respuestas:
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:Lo que hace exactamente lo mismo que el método que usa el complemento GroupStats .
Publicación original: 03/02/2016
Use el complemento GroupStats que puede necesitar descargar de Complementos> Administrar e instalar complementos .
Aquí hay una capa de ejemplo que usa algunos de los atributos que ha mostrado:
Entonces vamos:
Ejecute el complemento GroupStats , seleccione los campos relevantes para sumar (
Sales
para filas;Sum
para valores) y luego haga clic en Calcular . Debería ver los resultados que muestran la suma de cada venta:Guarde los resultados como un archivo .csv desde la barra de herramientas GroupStats:
Importe el archivo .csv nuevamente a QGIS arrastrándolo a la interfaz o desde la barra de herramientas:
Capa> Agregar capa> Agregar capa de texto delimitado ( tenga en cuenta que los valores están separados por punto y coma )
Haga uniones con el archivo shape y el archivo .csv, haciendo coincidir los
Sales
campos:El archivo de forma ahora debe contener los valores de suma del archivo .csv:
Si lo desea, puede utilizar la
Save As...
opción en el archivo de forma y guardarla como una nueva para mantener los campos unidos.fuente
sum( "Sum", "Sales")
usa"Sales"
como filtro de grupo, si eso es lo que quieres decir.Si actualiza a la última versión 2.14 de QGIS, puede usar capas virtuales haciendo una declaración sql como:
La IU se ve así:
También puede usar el administrador de base de datos, donde tiene un generador de consultas detrás del botón sql:
La columna MYID se puede usar para unir las ventas sumadas a la tabla principal. La pestaña de unión está debajo de las propiedades de tabla.
Eche un vistazo al registro de cambios visuales de QGIS en
Feature: Virtual layers
fuente
Una forma de hacerlo es la siguiente:
fuente