Группировка результатов по полю (SQL)
Запрос по всей базе
В конструкции этого запроса используется оператор GROUP BY, который позволяет разбить записи базы данных по участкам на группы. Группировка записей выполняться по значению внутреннего диаметра трубопровода.
Выборка данных производится с помощью ключевого слова SELECT, после которого задаются параметры выборки. Осуществляется выбор следующих параметров:- Внутренний диаметр трубы, м;
- Количество участков данного диаметра, для определения количества участков используются функция COUNT;
- Протяженность трубопроводов заданного диаметра, функция SUM определяет суммарную длину участков.
Ключевое слова AS используется для указания названий столбцов.
После ключевого слова FROM указывается слой, в котором будет производиться выбор.
Выражение WHERE используется для указания критериев выборки, в данном случае выбор осуществляется только по участкам. Участки водопроводной сети в структуре слоя имеют тип-8, условие typeid=8, в версии сборки 7.0.0.5425 и ниже задается type=8.
SELECT [Внутренний диаметр трубы, м] AS "Диаметр",
COUNT(*) AS "Количество участков",
SUM([Длина участка, м]) AS "Протяженность"
FROM [Пример водопроводной сети]
WHERE typeid=8
GROUP BY [Внутренний диаметр трубы, м]
Запрос по группе
Данный запрос можно выполнить по группе выделенных на карте участков. На карте, потребуется добавить часть участков в группу. В конструкцию запроса добавить оператор geometry.selected()=1.
SELECT [Внутренний диаметр трубы, м] AS "Диаметр",
COUNT(*) AS "Количество участков",
SUM([Длина участка, м]) AS "Протяженность"
FROM [Пример водопроводной сети]
WHERE typeid=8 and geometry.selected()=1
GROUP BY [Внутренний диаметр трубы, м]
Online справка
Последнее обновление — 06.06.2019 15:18:58