Работа с PostgreSQL

Создать таблицу

CREATE TABLE your_table(a TEXT,b TEXT,c INT)

Загрузить данные

Создать представление

CREATE OR REPLACE VIEW cf_main_s AS
SELECT
	cf."Сценарий",
	cf."Вид ДДС",
	cf."Статья ДДС",
	cf."МВЗ",
	cf."Номенклатура",
	cf."Период",
	cf.value,
	l.line_sort
FROM cf_main cf
LEFT JOIN md.cf_lines l ON
	cf."Вид ДДС" = l.line_name;

CTE

Посмотреть про временные табличные выражения - CTE
https://sky.pro/wiki/sql/sozdanie-vremennykh-tablits-v-sql-cherez-postgre-sql/

WITH virtual_table AS (
SELECT a AS col1, b AS col2, c AS col3 FROM table1
UNION ALL
SELECT d AS col1, e AS col2, f AS col3 FROM table2
UNION ALL
SELECT g AS col1, h AS col2, m AS col3 FROM table3
)
SELECT * FROM virtual_table;

-- Используем CTE для упорядочивания данных в запросе 
WITH cte AS ( 
	SELECT * 
	FROM source_table 
	WHERE condition ) 
	
	SELECT cte.* 
	FROM cte 
	JOIN other_table 
	ON cte.id = other_table.id;

Объединение нескольких Запросов с вычислением

SELECT b."Сценарий",
    b."Статья БДР",
    b."Статья затрат",
    b."МВЗ",
    b."Номенклатура",
    b."Период",
    b.value
   FROM bdr_main b
  WHERE b."Сценарий" = 'Бюджет 2025-2029'::text
UNION ALL
 SELECT f."Сценарий",
    f."Статья БДР",
    f."Статья затрат",
    f."МВЗ",
    f."Номенклатура",
    f."Период",
    f.value
   FROM bdr_main f
  WHERE f."Сценарий" = 'Факт'::text
UNION ALL
 SELECT 'Отклонение'::text AS "Сценарий",
    b."Статья БДР",
    b."Статья затрат",
    b."МВЗ",
    b."Номенклатура",
    b."Период",
    b.value - f.value AS value
   FROM (SELECT * FROM bdr_main WHERE "Сценарий" = 'Бюджет 2025-2029') b
     JOIN (SELECT * FROM bdr_main WHERE "Сценарий" = 'Факт') f 
       ON b."Статья БДР" = f."Статья БДР" 
         AND b."Статья затрат" = f."Статья затрат" 
         AND b."МВЗ" = f."МВЗ" 
         AND b."Номенклатура" = f."Номенклатура" 
         AND b."Период" = f."Период";

Superset

SUM(CASE WHEN "Сценарий" = 'Факт' THEN COALESCE(value, 0) ELSE 0 END) /*добавление меры */