Я хотел бы рассчитать сумму значений в одном столбце на основе значений в другом столбце. Чтобы проиллюстрировать мой вопрос, я загрузил картинку ниже. Второй столбец состоит из почтовых индексов, третий общий объем продаж. Я хотел бы знать, каковы общие продажи по почтовому индексу? Итак, в этом случае:
Какова сумма столбца три для значения второго столбца 1023
? Выходной тогда должно быть 4 (0+1+1+2+0)
. Сумма для 1024
тогда должна быть 11,5, следуя той же логике.
Поскольку это довольно большой набор данных, я бы хотел, чтобы калькулятор полей QGIS (или любой другой инструмент) вычислил новое поле, в котором указываются общие продажи в почтовом индексе. Пока что я не могу заставить его работать и надеялся, что кто-то здесь сможет мне помочь.
Как вы видите, у меня есть некоторые пропущенные значения, это проблема в расчете? Возможно, стоит упомянуть, что это стол.
источник
Ответы:
Обновление: QGIS 2.18 (07.07.2017):
В Калькуляторе полей вы можете использовать функцию Aggregate,
sum
которая позволяет суммировать значения столбца на основе выражения. Вы также можете, при желании, группировать и фильтровать объекты для суммирования. Итак, в своем полевом калькуляторе вы можете просто использовать:Что делает точно так же, как метод с использованием плагина GroupStats .
Оригинальное сообщение: 03/03/2016
Используйте плагин GroupStats, который вам может понадобиться загрузить из плагинов> Управление и установка плагинов .
Вот пример слоя с использованием некоторых атрибутов, которые вы показали:
Итак, начнем:
Запустите плагин GroupStats , выберите соответствующие поля для суммирования (
Sales
для строк;Sum
для значений) и нажмите кнопку « Рассчитать» . Вы должны увидеть результаты, показывающие сумму каждой продажи:Сохраните результаты в виде файла .csv на панели инструментов GroupStats:
Импортируйте файл .csv обратно в QGIS, перетащив его в интерфейс или с панели инструментов:
Слой> Добавить слой> Добавить текстовый слой с разделителями ( обратите внимание, что значения разделены точками с запятой )
Сделайте играя с шейп и файл .csv, сопоставляя
Sales
поля:Теперь шейп-файл должен содержать значения суммы из файла .csv:
Вы можете, если хотите, перейти к использованию
Save As...
параметра в шейп-файле и сохранить его как новый, чтобы сохранить объединенные поля.источник
sum( "Sum", "Sales")
использует"Sales"
в качестве группового фильтра, если это то, что вы имеете в виду?Если вы обновитесь до самой последней версии QGIS 2.14, вы можете использовать виртуальные слои, создавая выражение SQL, например:
Интерфейс выглядит так:
Вы также можете использовать менеджер БД, в котором за кнопкой sql есть построитель запросов:
Столбец MYID можно использовать для присоединения суммированных продаж к основной таблице. Вкладка объединения находится в свойствах вкладки.
Взгляните на визуальный журнал изменений QGIS в разделе
Feature: Virtual layers
источник
Способ сделать это заключается в следующем:
источник