select EXTRACT(YEAR FROM time) AS year,
sum(cost) filter(where EXTRACT('month' FROM time) = 1) as jan,
sum(cost) filter(where EXTRACT('month' FROM time) = 2) as feb,
...
sum(cost) filter(where EXTRACT('month' FROM time) = 12) as dec
from tablename
where ...
group by 1
order by 1
- у тебя какой версии X?
- Y
- ага, а у меня Z. Значит напишем "не тестировалось с X версии ниже Y"
- давай поднимем минимальную версию до Z, смотря какая там фича полезная нам была бы
- хм, вышел он N времени назад, проблемой оказаться не должно, не возражаю, добавь только в доку "требуется X версии минимум Z"
melkij=> create or replace function myfunc()
returns setof record
as $$
declare
res record;
begin
execute 'select 1' into res;
return next res;
execute 'select 2' into res;
return next res;
return;
end;
$$
language plpgsql;
CREATE FUNCTION
melkij=> select * from myfunc() as s(i int);
i
---
1
2
(2 строки)
melkij=> select myfunc();
ERROR: materialize mode required, but it is not allowed in this context
КОНТЕКСТ: PL/pgSQL function myfunc() line 6 at RETURN NEXT
melkij=> \df to_tsvector
Список функций
Схема | Имя | Тип данных результата | Типы данных аргументов | Тип
------------+-------------+-----------------------+------------------------+-------
pg_catalog | to_tsvector | tsvector | json | функ.
pg_catalog | to_tsvector | tsvector | jsonb | функ.
pg_catalog | to_tsvector | tsvector | regconfig, json | функ.
pg_catalog | to_tsvector | tsvector | regconfig, jsonb | функ.
pg_catalog | to_tsvector | tsvector | regconfig, text | функ.
pg_catalog | to_tsvector | tsvector | text | функ.
(6 строк)
melkij=> select 'hello'::xml;
xml
-------
hello
(1 строка)
melkij=> select '<foo>hello'::xml;
ERROR: invalid XML content
СТРОКА 1: select '<foo>hello'::xml;
^
ПОДРОБНОСТИ: line 1: Premature end of data in tag foo line 1
<foo>hello
^
line 1: chunk is not well balanced
<foo>hello
create table part (i int) partition by hash (i);
create table part_0 partition of part FOR VALUES WITH (MODULUS 2, REMAINDER 0);
create table part_1 partition of part FOR VALUES WITH (MODULUS 2, REMAINDER 1);
insert into part select generate_series(1,10);
select * from only part_0;
select * from only part_1;
архивные логи ДО-момента backup'а уже не нужны
Видяха единственная станет работать по 8 линиям? Или если во втором слоте не видеокарта, то и линии не будут делиться?
Использование PCIe 2.0 x16 не возможно, так как согласно спецификации материнки в случаи установки ssd в m2_2 (а он там установлен) этот слот не работает.