powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / помогите с crosstab
4 сообщений из 4, страница 1 из 1
помогите с crosstab
    #38846101
gda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
ontology-prod=> select sub_name, document_id, result
  from ontology.vw_doc_with_result t
 where t.document_id in (3930179,3930177,3930178) order by sub_name, document_id;
           sub_name           | document_id | result
------------------------------+-------------+--------
 DEALER Amenities             |     3930177 | 96.3
 DESIGN - Amenties Packages   |     3930178 | 97.5
 PRODUCT - Inquiry - Negative |     3930179 | 92.9
(3 rows)

ontology-prod=> select *
ontology-prod-> from crosstab(
ontology-prod(> 'select sub_name, document_id, result
ontology-prod'>   from ontology.vw_doc_with_result t
ontology-prod'>  where t.document_id in (3930179,3930177,3930178) order by sub_name, document_id')
ontology-prod-> as vw_doc_with_result(sub_name text, "c3930177" text, "c3930178" text, "c3930179" text);
           sub_name           | c3930177 | c3930178 | c3930179
------------------------------+----------+----------+----------
 DEALER Amenities             | 96.3     |          |
 DESIGN - Amenties Packages   | 97.5     |          |
 PRODUCT - Inquiry - Negative | 92.9     |          |
(3 rows)

ontology-prod=>



а надо получить, что не так в запросе


Код: sql
1.
2.
3.
4.
5.
           sub_name           | c3930177 | c3930178 | c3930179
------------------------------+----------+----------+----------
 DEALER Amenities             | 96.3     |          |
 DESIGN - Amenties Packages   |          | 97.5     |
 PRODUCT - Inquiry - Negative |          |          | 92.9     
...
Рейтинг: 0 / 0
помогите с crosstab
    #38846177
gda,

сделай через CASE и не мучайся.
...
Рейтинг: 0 / 0
помогите с crosstab
    #38846229
gda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CASE не катит так как данных может быть больше, document_id могут быть другие, и не только 3 document_id, значения в sub_name - может дублироваться с разными значениями в "result" для одного и того же document_id
...
Рейтинг: 0 / 0
помогите с crosstab
    #38847566
Лопата
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gda,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
BEGIN;
create extension  tablefunc;
create table t as 
WITH t (sub_name,document_id, result) AS (values
 ('DEALER Amenities'::text,		3930177::int, 96.3::double precision)
 ,('DESIGN - Amenties Packages',	3930178 , 97.5)
 ,('PRODUCT - Inquiry - Negative',	3930179 , 92.9)
 )
SELECT * FROM t 
;

 select *
from crosstab(
'select sub_name, ''c''||document_id::text, result
from t
order by 1, 2'
,'SELECT ''c''||document_id::text FROM t')
as vw_doc_with_result(sub_name text, c3930177 double precision, c3930178 double precision, c3930179 double precision);
--------------
'DEALER Amenities',96.3,,
'DESIGN - Amenties Packages',,97.5,
'PRODUCT - Inquiry - Negative',,,92.9
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / помогите с crosstab
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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