postgresql комментарии в коде

Иллюстрированный самоучитель по PostgreSQL

Комментарии

Комментарием называется фрагмент обычного текста, оформленный специальным образом и внедренный в код SQL. Комментарии не влияют на выполнение программы, поскольку PostgreSQL удаляет их из входного потока и интерпретирует как обычные пропуски. Существует две разновидности комментариев: однострочные и многострочные.

Однострочные комментарии начинаются с двух дефисов () и либо находятся в отдельной строке, либо следуют за лексемами SQL (модуль лексического разбора PostgreSQL не считает комментарии лексемами, а все символы, следующие за последовательностью , интерпретирует как пропуски). Пример однострочного комментария приведен в листинге 3.11.

Листинг 3.11. Однострочные комментарии.

Многострочные комментарии начинаются с последовательности /* и завершаются последовательностью */. Такой способ оформления комментариев хорошо знаком программистам С, но между интерпретатором PostgreSQL и компилятором С существует одно принципиальное отличие: комментарии PostgreSQL могут быть вложенными. Иначе говоря, если внутри многострочного комментария имеется другой многострочный комментарий, то закрывающая последовательность */ внутреннего комментария не закрывает внешний комментарий. Пример многострочного комментария приведен в листинге 3.12.

Листинг 3.12. Многострочные комментарии.

Допустим, имеется файл с кодом SQL, в котором необходимо закомментировать большой фрагмент и передать остаток PostgreSQL для интерпретации и выполнения. Если в этом фрагменте встречаются многострочные комментарии, PostgreSQL правильно заключает, что закрывающая последовательность */ относится к последнему открытому комментарию, а не ко всему закомментированному блоку.

Примечание
Звездочка (без смежного символа косой черты) не имеет особой интерпретации в комментариях. Дополнительные звездочки были включены в листинг 3.12 исключительно по эстетическим сообщениям
.

Выводы

Итак, команда SQL состоит из отдельных лексем, каждая из которых может быть ключевым словом, идентификатором, защищенным идентификатором, константой или специальным символом. В табл. 3.7 структура команд SQL поясняется на примере простой команды SELECT.

Таблица 3.7. Простой запрос SQL.

SELECTid, nameFROMstates
Тип лексемыКлючевое словоИдентификаторыКлючевое словоИдентификатор
ОписаниеКомандаИмена полейИмя секцииИмя таблицы

Как видно из таблицы, команда SELECT содержит ключевые слова SELECT и FROM. Ключевое слово FROM с лексемой states образует секцию, уточняющую смысл команды SELECT.

Лексемы id, name и states в приведенном примере являются идентификаторами. Идентификаторы Id и name определяют выбираемые поля, а идентификатор states определяет имя таблицы, из которой производится выборка. Таким образом, приведенный выше запрос приказывает PostgreSQL выбрать поля Id и name каждой записи таблицы states. В листинге 3.13 показаны результаты выполнения этого запроса.

Источник

Postgresql комментарии в коде

COMMENT — задать или изменить комментарий объекта

Синтаксис

Описание

COMMENT сохраняет комментарий об объекте базы данных.

Параметры

Имя объекта, для которого задаётся комментарий. Имена таблиц, агрегатных функций, правил сортировки, перекодировок, доменов, сторонних таблиц, функций, индексов, операторов, классов и семейств операторов, последовательностей, объектов текстового поиска, типов и представлений могут быть дополнены именем схемы. При определении комментария для столбца, имя_отношения должно ссылаться на таблицу, представление, составной тип или стороннюю таблицу. имя_таблицы
имя_домена

При создании комментария для ограничения, триггера, правила или политики эти параметры задают имя таблицы или домена, к которым относится этот объект. исходный_тип

Имя исходного типа данных для приведения. целевой_тип

Имя целевого типа данных для приведения. режим_аргумента

Имя аргумента обычной или агрегатной функции. Заметьте, что на самом деле COMMENT не обращает внимание на имена аргументов, так как для однозначной идентификации функции достаточно только типов аргументов. тип_аргумента

Тип данных аргумента обычной или агрегатной функции. oid_большого_объекта

OID большого объекта. тип_слева
тип_справа

Это слово не несёт смысловой нагрузки. имя_типа

Имя типа данных, для которого предназначена трансформация. имя_языка

Имя языка, для которого предназначена трансформация. текст

Новый комментарий, записанный в виде строковой константы (или NULL для удаления комментария).

Замечания

В настоящее время механизм безопасности в части просмотра комментариев отсутствует: любой пользователь, подключённый к базе данных, может видеть все комментарии всех объектов базы. Для общих объектов, таких как базы данных, роли и табличные пространства, комментарии хранятся глобально, так что их может видеть любой пользователь, подключённый к любой базе данных в кластере. Поэтому ничего секретного писать в комментариях не следует.

Примеры

Добавление комментария для таблицы mytable :

Ещё несколько примеров:

Совместимость

Оператор COMMENT отсутствует в стандарте SQL.

Источник

Курс молодого бойца PostgreSQL

postgresql комментарии в коде. image loader. postgresql комментарии в коде фото. postgresql комментарии в коде-image loader. картинка postgresql комментарии в коде. картинка image loader. Комментарием называется фрагмент обычного текста, оформленный специальным образом и внедренный в код SQL. Комментарии не влияют на выполнение программы, поскольку PostgreSQL удаляет их из входного потока и интерпретирует как обычные пропуски. Существует две разновидности комментариев: однострочные и многострочные.

Хочу поделиться полезными приемами работы с PostgreSQL (другие СУБД имеют схожий функционал, но могут иметь иной синтаксис).

Постараюсь охватить множество тем и приемов, которые помогут при работе с данными, стараясь не углубляться в подробное описание того или иного функционала. Я любил подобные статьи, когда обучался самостоятельно. Пришло время отдать должное бесплатному интернет самообразованию и написать собственную статью.

Данный материал будет полезен тем, кто полностью освоил базовые навыки SQL и желает учиться дальше. Советую выполнять и экспериментировать с примерами в pgAdmin‘e, я сделал все SQL-запросы выполнимыми без разворачивания каких-либо дампов.

1. Использование временных таблиц

При решении сложных задач трудно поместить решение в один запрос (хотя, многие стараются так сделать). В таких случаях удобно помещать какие-либо промежуточные данные во временную таблицу, для использования их в дальнейшем.

Такие таблицы создаются как обычные, но с ключевым словом TEMP, и автоматически удаляются после завершения сессии.

Ключ ON COMMIT DROP автоматически удаляет таблицу (и все связанные с ней объекты) при завершении транзакции.

2. Часто используемый сокращенный синтаксис Postgres

можно записать менее громоздко:

* (две тильды со звездочкой)

Поиск регулярными выражениями (имеет отличный от LIKE синтаксис)
оператор

* (одна тильда и звездочка) регистронезависимая версия

Приведу пример поиска разными способами строк, которые содержат слово text

‘%text%’

* ‘%text%’

Cокращенный синтаксисОписаниеАналог (I)LIKE
Проверяет соответствие выражению с учётом регистраLIKE ‘%text%’
Проверяет соответствие выражению без учёта регистраILIKE ‘%text%’
!

‘%text%’

Проверяет несоответствие выражению с учётом регистраNOT LIKE ‘%text%’
!

* ‘%text%’

Проверяет несоответствие выражению без учёта регистраNOT ILIKE ‘%text%’

3. Общие табличные выражения (CTE). Конструкция WITH

Очень удобная конструкция, позволяет поместить результат запроса во временную таблицу и тут же использовать ее.

Примеры будут примитивны, чтобы уловить суть.

Таким способом можно ‘оборачивать’ какие-либо запросы (даже UPDATE, DELETE и INSERT, об этом будет ниже) и использовать их результаты в дальнейшем.

b) Можно создать несколько таблиц, перечисляя их нижеописанным способом

c) Можно даже вложить вышеуказанную конструкцию в еще один (и более) WITH

По производительности следует сказать, что не стоит помещать в секцию WITH данные, которые будут в значительной степени фильтроваться последующими внешними условиями (за пределами скобок запроса), ибо оптимизатор не сможет построить эффективный запрос. Удобнее всего положить в CTE результаты, к которым требуется несколько раз обращаться.

4. Функция array_agg(MyColumn).

Значения в реляционной базе хранятся разрозненно (атрибуты по одному объекту могут быть представлены в нескольких строках). Для передачи данных какому-либо приложению часто возникает необходимость собрать данные в одну строку (ячейку) или массив.
В PostgreSQL для этого существует функция array_agg(), она позволяет собрать в массив данные всего столбца (если выборка из одного столбца).
При использовании GROUP BY в массив попадут данные какого-либо столбца относительно каждой группы.

Сразу опишу еще одну функцию и перейдем к примеру.
array_to_string(array[], ‘;’) позволяет преобразовать массив в строку: первым параметром указывается массив, вторым — удобный нам разделитель в одинарных кавычках (апострофах). В качестве разделителя можно использовать

Выдаст результат:
postgresql комментарии в коде. image loader. postgresql комментарии в коде фото. postgresql комментарии в коде-image loader. картинка postgresql комментарии в коде. картинка image loader. Комментарием называется фрагмент обычного текста, оформленный специальным образом и внедренный в код SQL. Комментарии не влияют на выполнение программы, поскольку PostgreSQL удаляет их из входного потока и интерпретирует как обычные пропуски. Существует две разновидности комментариев: однострочные и многострочные.

Выполним обратное действие. Разложим массив в строки при помощи функции UNNEST, заодно продемонстрирую конструкцию SELECT columns INTO table_name. Помещу это в спойлер, чтобы статья не сильно разбухала.

5. Ключевое слово RETURNIG *

указанное после запросов INSERT, UPDATE или DELETE позволяет увидеть строки, которых коснулась модификация (обычно сервер сообщает лишь количество модифицированных строк).
Удобно в связке с BEGIN посмотреть на что именно повлияет запрос, в случае неуверенности в результате или для передачи каких либо id на следующий шаг.

Можно использовать в связке с CTE, организую безумный пример.

Таким образом, выполнится удаление данных, и удаленные значения передадутся на следующий этап. Все зависит от вашей фантазии и целей. Перед применением сложных конструкций обязательно изучите документацию вашей версии СУБД! (при параллельном комбинировании INSERT, UPDATE или DELETE существуют тонкости)

6. Сохранение результата запроса в файл

У команды COPY много разных параметров и назначений, опишу самое простое применение для ознакомления.

7. Выполнение запроса на другой базе

Не так давно узнал, что можно адресовать запрос к другой базе, для этого есть функция dblink (все подробности в мануале)

postgresql комментарии в коде. image loader. postgresql комментарии в коде фото. postgresql комментарии в коде-image loader. картинка postgresql комментарии в коде. картинка image loader. Комментарием называется фрагмент обычного текста, оформленный специальным образом и внедренный в код SQL. Комментарии не влияют на выполнение программы, поскольку PostgreSQL удаляет их из входного потока и интерпретирует как обычные пропуски. Существует две разновидности комментариев: однострочные и многострочные.

Если возникает ошибка:

«ERROR: function dblink(unknown, unknown) does not exist»

необходимо выполнить установку расширения следующей командой:

8. Функция similarity

Функция определения схожести одного значения к другому.

Использовал для сопоставления текстовых данных, которые были похожи, но не равны друг другу (имелись опечатки). Сэкономил уйму времени и нервов, сведя к минимуму ручную привязку.
similarity(a, b) выдает дробное число от 0 до 1, чем ближе к 1, тем точнее совпадение.
Перейдем к примеру. С помощью WITH организуем временную таблицу с вымышленными данными (и специально исковерканными для демонстрации функции), и будем сравнивать каждую строку с нашим текстом. В примере ниже будем искать то, что больше похоже на ООО «РОМАШКА» (подставим во второй параметр функции).

Получим следующий результат:
postgresql комментарии в коде. image loader. postgresql комментарии в коде фото. postgresql комментарии в коде-image loader. картинка postgresql комментарии в коде. картинка image loader. Комментарием называется фрагмент обычного текста, оформленный специальным образом и внедренный в код SQL. Комментарии не влияют на выполнение программы, поскольку PostgreSQL удаляет их из входного потока и интерпретирует как обычные пропуски. Существует две разновидности комментариев: однострочные и многострочные.

Если возникает ошибка

«ERROR: function similarity(unknown, unknown) does not exist»

необходимо выполнить установку расширения следующей командой:

Сортируем по similarity DESC. Первыми результатами видим наиболее похожие строки (1— полное сходство).

Необязательно выводить значение similarity в SELECT, можно просто использовать его в условии WHERE similarity(c_name, ‘ООО «РОМАШКА»’) >0.7
и самим задавать устраивающий нас параметр.

P.S. Буду признателен, если подскажете какие еще есть способы сопоставления текстовых данных. Пробовал убирать регулярными выражениями все кроме букв/цифр, и сопоставлять по равенству, но такой вариант не срабатывает, если присутствуют опечатки.

9. Оконные функции OVER() (PARTITION BY __ ORDER BY __ )

Почти описав в своем черновике этот очень мощный инструмент, обнаружил (с грустью и радостью), что подобная качественная статья на эту тему уже существует. Не вижу смысла дублировать информацию, поэтому рекомендую обязательно ознакомиться с данной статьей (ссылка — habrahabr.ru/post/268983/, автору низкий поклон ) тем, кто еще не умеет пользоваться оконными функциями SQL.

10. Множественный шаблон для LIKE

Задача. Необходимо отфильтровать список пользователей, имена которых должны соответствовать определенным шаблонам.

Как всегда, представлю простейший пример:

Имеем запрос, который выполняет свою функцию, но становится громоздким при большом количестве фильтров.

Продемонстрирую, как сделать его более компактным:

Можно проделать интересные трюки, используя подобный подход.
Напишите в комментариях, если есть мысли, как еще можно переписать исходный запрос.

11. Несколько полезных функций

NULLIF(a,b)
Возникают ситуации, когда определенное значение нужно трактовать как NULL.
Например, строки нулевой длины ( » — пустые строки) или ноль(0).
Можно написать CASE, но лаконичнее использовать функцию NULLIF, которая имеет 2 параметра, при равенстве которых возвращается NULL, иначе выводит исходное значение.

COALESCE выбирает первое не NULL значение

GREATEST выбирает наибольшее значение из перечисленных

LEAST выбирает наименьшее значение из перечисленных

PG_TYPEOF показывает тип данных столбца

PG_CANCEL_BACKEND останавливаем нежелательные процессы в базе

12. Экранирование символов

Начну с основ.
В SQL строковые значения обрамляются апострофом (одинарной кавычкой).
Числовые значения можно не обрамлять апострофами, а для разделения дробной части нужно использовать точку, т.к. запятая будет воспринята как разделитель

результат:
postgresql комментарии в коде. image loader. postgresql комментарии в коде фото. postgresql комментарии в коде-image loader. картинка postgresql комментарии в коде. картинка image loader. Комментарием называется фрагмент обычного текста, оформленный специальным образом и внедренный в код SQL. Комментарии не влияют на выполнение программы, поскольку PostgreSQL удаляет их из входного потока и интерпретирует как обычные пропуски. Существует две разновидности комментариев: однострочные и многострочные.

Все хорошо, до тех пор пока не требуется выводить сам знак апострофа
Для этого существуют два способа экранирования (известных мне)

результат одинаковый:
postgresql комментарии в коде. image loader. postgresql комментарии в коде фото. postgresql комментарии в коде-image loader. картинка postgresql комментарии в коде. картинка image loader. Комментарием называется фрагмент обычного текста, оформленный специальным образом и внедренный в код SQL. Комментарии не влияют на выполнение программы, поскольку PostgreSQL удаляет их из входного потока и интерпретирует как обычные пропуски. Существует две разновидности комментариев: однострочные и многострочные.

В PostgreSQL существуют более удобный способ использовать данные, без экранирования символов. В обрамленной двумя знаками доллара $$ строке можно использовать практически любые символы.

получаю данные в первозданном виде:
postgresql комментарии в коде. image loader. postgresql комментарии в коде фото. postgresql комментарии в коде-image loader. картинка postgresql комментарии в коде. картинка image loader. Комментарием называется фрагмент обычного текста, оформленный специальным образом и внедренный в код SQL. Комментарии не влияют на выполнение программы, поскольку PostgreSQL удаляет их из входного потока и интерпретирует как обычные пропуски. Существует две разновидности комментариев: однострочные и многострочные.

Если этого мало, и внутри требуется использовать два символа доллара подряд $$, то Postgres позволяет задать свой «ограничитель». Стоит лишь между двумя долларами написать свой текст, например:

Увидим наш текст:
postgresql комментарии в коде. image loader. postgresql комментарии в коде фото. postgresql комментарии в коде-image loader. картинка postgresql комментарии в коде. картинка image loader. Комментарием называется фрагмент обычного текста, оформленный специальным образом и внедренный в код SQL. Комментарии не влияют на выполнение программы, поскольку PostgreSQL удаляет их из входного потока и интерпретирует как обычные пропуски. Существует две разновидности комментариев: однострочные и многострочные.

Для себя этот способ открыл не так давно, когда начал изучать написание функций.

Заключение

Надеюсь, данный материал поможет узнать много нового начинающим и «средничкам». Сам я не являюсь разработчиком, а могу лишь назвать себя любителем SQL, поэтому то, как использовать описанные приемы — решать Вам.

Желаю успехов в изучении SQL. Жду комментариев и благодарю за прочтение!
UPD. Вышло продолжение

Источник

Получение комментариев полей и таблиц Postgresql

Здравствуйте, помогите доделать запрос.

Данный запрос выводит имя таблицы, комментарий к таблице, имя поля и комментарий к полю по одной выбранной таблице.

SELECT c.relname, obj_description(c.oid), a.attname, d.description
FROM pg_class c, pg_attribute a, pg_description d
WHERE c.oid = a.attrelid
AND a.attnum > 0
AND (d.objoid = c.oid)
AND (a.attnum = d.objsubid)
AND c.relname = ‘имя таблицы’
ORDER BY c.oid;

Но он НЕ выводит данные если нет комментариев. Если их нет, он не выводит даже имя таблицы.

Как изменить этот запрос(или сделать другой) так, чтобы он всегда выводил имя таблицы и имена полей этой таблицы, а комментарии к ним, если их нет, просто делал пустыми?

Помощь в написании контрольных, курсовых и дипломных работ здесь.

postgresql комментарии в коде. tick. postgresql комментарии в коде фото. postgresql комментарии в коде-tick. картинка postgresql комментарии в коде. картинка tick. Комментарием называется фрагмент обычного текста, оформленный специальным образом и внедренный в код SQL. Комментарии не влияют на выполнение программы, поскольку PostgreSQL удаляет их из входного потока и интерпретирует как обычные пропуски. Существует две разновидности комментариев: однострочные и многострочные.Получение названий полей и таблиц
Итак вот есть БД sqlite. Установив соединение с данной БД каким запросом можно получить 1)список.

postgresql комментарии в коде. tick. postgresql комментарии в коде фото. postgresql комментарии в коде-tick. картинка postgresql комментарии в коде. картинка tick. Комментарием называется фрагмент обычного текста, оформленный специальным образом и внедренный в код SQL. Комментарии не влияют на выполнение программы, поскольку PostgreSQL удаляет их из входного потока и интерпретирует как обычные пропуски. Существует две разновидности комментариев: однострочные и многострочные.Ручное получение информации из имеющихся таблиц PostgreSQL
Доброй ночи уважаемые форумчане. Имеется VS17, PostgreSQL, PostGIS. В БД хранятся таблицы.

Получение полей таблиц
Использую ODAC для работы с Oracle. Нужно получить список полей таблицы. Понятно что можно сделать.

postgresql комментарии в коде. tick. postgresql комментарии в коде фото. postgresql комментарии в коде-tick. картинка postgresql комментарии в коде. картинка tick. Комментарием называется фрагмент обычного текста, оформленный специальным образом и внедренный в код SQL. Комментарии не влияют на выполнение программы, поскольку PostgreSQL удаляет их из входного потока и интерпретирует как обычные пропуски. Существует две разновидности комментариев: однострочные и многострочные.Автоматическое создание таблиц из наименований таблиц, имен полей, типов полей
Форумчане, доброго времени суток! Есть таблица в которую автоматом выгрузили имена всех таблиц.

Помощь в написании контрольных, курсовых и дипломных работ здесь.

postgresql комментарии в коде. tick. postgresql комментарии в коде фото. postgresql комментарии в коде-tick. картинка postgresql комментарии в коде. картинка tick. Комментарием называется фрагмент обычного текста, оформленный специальным образом и внедренный в код SQL. Комментарии не влияют на выполнение программы, поскольку PostgreSQL удаляет их из входного потока и интерпретирует как обычные пропуски. Существует две разновидности комментариев: однострочные и многострочные.Получить список таблиц, полей и описание полей базы данных
Добрый день! подскажите как можно получить список таблиц, полей и описание полей базы данных?

Редактирование произвольной таблицы, если ряд полей таблиц содержит коды объектов из других таблиц
Уважаемые, Гуру! Хотелось бы построить редактор произвольной таблицы БД. Загрузка таблицы «select.

Выборка последних комментариев из 2х таблиц БД
всем привет. нужно выбрать по 1 последнему комментарию (столбец text) каждого юзера и вывести имя.

postgresql комментарии в коде. tick. postgresql комментарии в коде фото. postgresql комментарии в коде-tick. картинка postgresql комментарии в коде. картинка tick. Комментарием называется фрагмент обычного текста, оформленный специальным образом и внедренный в код SQL. Комментарии не влияют на выполнение программы, поскольку PostgreSQL удаляет их из входного потока и интерпретирует как обычные пропуски. Существует две разновидности комментариев: однострочные и многострочные.Получение данных из PostgreSQL с определённой периодичностью.
есть кто? подскажите а можно ли при помощи js выгребать данные из базы потсгрес с некой.

Ошибка при получении списка таблиц в PostgreSQL с psycopg2
Нашел в интернете запрос для получения всех таблиц из базы на PostgreSQL: SELECT table_name FROM.

Список имен таблиц и имен полей таблиц для анализа на форуме
Форумчане, доброго времени суток! Подготовил новые имена таблиц и их полей для создания структуры.

Источник

Полезные трюки PostgreSQL

postgresql комментарии в коде. cdc47f83c64847e3adda8cece9d9b978. postgresql комментарии в коде фото. postgresql комментарии в коде-cdc47f83c64847e3adda8cece9d9b978. картинка postgresql комментарии в коде. картинка cdc47f83c64847e3adda8cece9d9b978. Комментарием называется фрагмент обычного текста, оформленный специальным образом и внедренный в код SQL. Комментарии не влияют на выполнение программы, поскольку PostgreSQL удаляет их из входного потока и интерпретирует как обычные пропуски. Существует две разновидности комментариев: однострочные и многострочные.

В мануале есть всё. Но чтобы его целиком прочитать и осознать, можно потратить годы. Поэтому один из самых эффективных методов обучения новым возможностям Postgres — это посмотреть, как делают коллеги. На конкретных примерах. Эта статья может быть интересна тем, кто хочет глубже использовать возможности postgres или рассматривает переход на эту СУБД.

Пример 1

Предположим, надо получить строки из таблицы, которых нет в другой точно такой же таблице, причем с проверкой всех полей на идентичность.

Традиционно можно было бы написать так (предположим, в таблице 3 поля):

Слишком многословно, на мой взгляд, и зависит от конкретных полей.
В посгресе же можно использовать тип Record. Получить его из таблицы можно используя само название таблицы.

(Выведет в скобочках)

Теперь, наконец отфильтруем строки с идентичными полями

или чуть более читабельно:

Пример 2

Очень жизненная задача. Приходит письмо “Вставь, пожалуйста, для юзеров 100, 110, 153, 100500 такие-то данные”.
Т.е. надо вставить несколько строк, где id разные, а остальное одинаковое.
Можно вручную составить такую “портянку”:

Если id много, то это слегка напрягает. Кроме того, у меня аллергия на дублирование кода.

Для решения подобных проблем в посгресе есть тип данных “массив”, а также функция unnest, которая из массива делает строки с данными.

Т.е. в нашем примере мы можем написать так

т.е. список id просто копипастим из письма. Очень удобно.

Кстати, если же вам наоборот нужен массив из запроса, то для этого есть функция, которая так и называется — array(). Например, select array(select id from important_user_table);

Пример 3

Для схожих целей можно использовать еще один трюк. Мало кто знает, что синтаксис

можно использовать не только в INSERT запросах, но и в SELECT, надо только в скобочки взять

Очень удобно для обработки пар значений.

Пример 4

Допустим, вам нужно что-то вставить, проапдейтить, и получить id затронутых элементов. Чтобы сделать это, не обязательно делать много запросов и создавать временные таблицы. Достаточно всё это запихать в CTE.

Но будьте очень внимательны. Все подвыражения CTE выполняеются параллельно друг с другом, и их последовательность никак не определена. Более того, они используют одну и ту же версию (snapshot), т.е. если в одном подвыражении вы прибавили что-то к полю таблицы, в другом вычли, то возможно, что сработает что-то одно из них.

Пример 5

Допустим в какой-то таблице под названием stats есть данные только за один день:

А вам надо вывести стату за какой-то период, заменив отсутствующие данные нулями. Это можно сделать с помощью generate_series

Разумеется, этот трюк работает не только с датами, но и с числами. Причем можно использовать несколько generate_series в одном запросе:

Пример n+1

Вообще, я пишу статьи на хабр, чтобы получить немного нового опыта из коментов )
Пожалуйста, напишите, что вы используете в повседневной работе. Что-нибудь такое, что возможно не для всех очевидно, особенно для людей, переехавших с других СУБД, например, с того же mysql?

Подписывайтесь на подкаст о разработке «Цинковый прод», где мы обсуждаем базы данных, языки программирования и всё на свете!

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *