powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Создание плоской таблицы из таблицы фактов - помогите с запросом
4 сообщений из 4, страница 1 из 1
Создание плоской таблицы из таблицы фактов - помогите с запросом
    #39885296
Sergey889900
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем добрый день!

Нужна помощь с запросом.

Есть две таблицы - таблица показателей и таблица фактов.

Metrics
Id, Name, CategoryId

Facts
Id, RowMetricId, ColumnMetricId, Value

Нужно собрать все в плоскую сводную таблицу.

У меня получилось сделать такой запрос

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
select 
  min (ctf."RowMetricId") as ROWID,
  (select  mt1."Name" from public."Metrics" as mt1 where mt1."Id" = min(ctf."RowMetricId") ) as ROWNAME ,
  sum(case when ctf."ColumnMetricId"=4  then ctf."Value" end) as C1,
  sum(case when ctf."ColumnMetricId"=5  then ctf."Value" end) as C2,
  sum(case when ctf."ColumnMetricId"=6  then ctf."Value" end) as C3,
  sum(case when ctf."ColumnMetricId"=7  then ctf."Value" end) as C4,
  sum(case when ctf."ColumnMetricId"=10  then ctf."Value" end) as C5,
  sum(case when ctf."ColumnMetricId"=11  then ctf."Value" end) as C6
from public."Facts" as ctf 
group by ctf."RowMetricId"
order by ROWID



Это по сути то, что мне нужно, но в данном случае нужно вручную вводить показатели по столбцам.
В задаче нужно в запросе только использовать ID категории, к которому относятся показатели строки и столбца. Те чтобы таблица формировалась динамически.

Во вложении файл со скриншотом.
...
Рейтинг: 0 / 0
Создание плоской таблицы из таблицы фактов - помогите с запросом
    #39885298
Sergey889900
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это скриншот таблицы Facts
...
Рейтинг: 0 / 0
Создание плоской таблицы из таблицы фактов - помогите с запросом
    #39885299
Sergey889900
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Таблица Metrics
...
Рейтинг: 0 / 0
Создание плоской таблицы из таблицы фактов - помогите с запросом
    #39886278
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
with metrics(id, name) as (values (1, 'a'), (2, 'b'), (3, 'c'), (10, 'x'), (11, 'y'))
, facts(rowmetricid, columnmetricid, value) as (values (10, 1, 100), (10, 2, 200), (11, 1, 300), (11, 3, 400))
select min(rowmetrics.name), json_object_agg(columnmetrics.name, facts.value) from facts
join metrics as rowmetrics on rowmetrics.id = rowmetricid
join metrics as columnmetrics on columnmetrics.id = columnmetricid
group by rowmetricid
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Создание плоской таблицы из таблицы фактов - помогите с запросом
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]