Перекрестные данные в Postgres

#sql #database #postgresql #select #business-intelligence

Вопрос:

это первый раз, когда я задаю здесь вопрос.

В своей работе я работал с метабазой и некоторыми базами данных на Postgres. У меня есть требование, которое заключается в пересечении данных между таблицами, но в основной таблице нет столбца даты, который можно было бы объединить с другими. Основной способ, который является шаблоном, — присоединиться к планшету de calendar_aux в лагере свиданий.

Основная таблица с именем shop_dre_operational имеет следующую структуру

 year january february march april may june july august september october november december
 

Возвращая значения, подобные этому:
Результаты

Все месяцы являются столбцами, включая год, как я могу преобразовать их в дату, чтобы объединить с другими таблицами и выбрать некоторые значения?

Ответ №1:

Вы можете использовать UNION ALL для сбора данных в другом формате. Например:

 select *
from (
  select make_date(ano, 1, 1) as date, jan as amount from t
  union all select make_date(ano, 2, 1), fev from t
  union all select make_date(ano, 3, 1), mar from t
  ...
  union all select make_date(ano, 12, 1), dez from t
) x
where ...
group by ...
order by ...
 

Будет создан набор данных с двумя столбцами: date и amount который вы можете использовать в любом запросе.

Комментарии:

1. Я реализовал это решение, заменив from t другие переменные окружения, которые я использовал в коде. Это сработало, спасибо!