Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / CrossTab возвращает одну запись / 2 сообщений из 2, страница 1 из 1
03.12.2021, 14:38
    #40117043
VAbramyak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CrossTab возвращает одну запись
Всем привет! Я больше варюсь в MS SQL. Есть необходимость в PostgreSQL выбрать данные по аналогии Pivot в MS SQL.
Запрос:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
select * from crosstab($$select DeviceId, OwnerAccount, serialnumber, "date" as indexdate, chanid as EnergyKind, tzid, "value" as val from (
select 
	dense_RANK() OVER (partition by c.id, d.chanid order by date desc) rank,
c.owneraccount, c.id as deviceid , 
c.serialnumber, d.date, d.chanid, d.tzid, d.value
from meter c join energysum d  
on c.id = d.meterid
where c.owneraccount='2501887' and id = 50600 
and 
date > '20211101' and date <='20211201') Q where rank = 1 
order by rank desc, deviceid, chanid, tzid
					   $$ ,$$SELECT unnest('{0,1,2,3}'::text[])$$
) 
AS ct ("DeviceId" int, "OwnerAccount" character varying(255), "Serialnumber" character varying(255), "IndexDate" timestamp, 
	   "EnergyKind" int, "T0" numeric(18,4), "T1" numeric(18,4), "T2" numeric(18,4), "T3" numeric(18,4));



Но он возвращает только одну запись для EnergyKind=1, а должно быть 3. EnergyKind=1,3,4
Что не так?
...
Рейтинг: 0 / 0
03.12.2021, 14:43
    #40117047
VAbramyak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CrossTab возвращает одну запись
Незнаю, как два скрина добавить. Вот результат:
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / CrossTab возвращает одну запись / 2 сообщений из 2, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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