У меня есть таблица с этой схемой:
summary | time | v1 | v2 | .... v28
---------------------------------------------------------
count | 12345 | 3.7 | 9.8 | .... 6.8
stddev | 23564 | 5.7 | 8.8 | .... 6.6
min | 12345 | 6.7 | 3.8 | .... 6.5
25% | 12545 | 7.7 | 1.8 | .... 6.4
50% | 13455 | 8.7 | 2.8 | .... 6.3
75% | 32345 | 9.7 | 4.8 | .... 6.2
max | 89045 | 1.7 | 4.9 | .... 6.1
Я хочу, чтобы результат был:
column_Name | count | count | stddev | min | 25% | 50% | 75% | max
--------------------------------------------------------------------------------------------------------
time | ..... | ..... | ..... | .... | ... | ... | ... | ...
v1 | ..... | ..... | ..... | .... | ... | ... | ... | ...
v2 | ..... | ..... | ..... | .... | ... | ... | ... | ...
.
.
.
v28 | ..... | ..... | ..... | .... | ... | ... | ... | ...
Я использую PostgresSQL 9.4 и DBeaver для транспонирования / поворотаэто с использованием нескольких запросов, которые я обнаружил при переполнении стека, но я получаю ошибки!Я не знаю, почему я получаю их: Query1
SELECT (each(hstore(dataset.stats.*))).* FROM dataset.stats
Получение этой ошибки:
SQL Error [1]: Query failed (#20190927_165859_00936_zga4f): line 1:77: mismatched input '*'. Expecting: <identifier>
Это запрос2:
SELECT 'SELECT *
FROM crosstab(
''SELECT u.attnum, t.rn, u.val
FROM (SELECT row_number() OVER () AS rn, * FROM ' || attrelid::regclass || ') t
, unnest(ARRAY[' || string_agg(quote_ident(attname) || '::text', ',') || '])
WITH ORDINALITY u(val, attnum)
ORDER BY 1, 2''
) t (attnum int, '
|| (SELECT string_agg('r'|| rn ||' text', ',')
FROM (SELECT row_number() OVER () AS rn FROM tbl) t)
|| ')' AS sql
FROM pg_attribute
WHERE attrelid = 'dataset.stats'::regclass
AND attnum > 0
AND NOT attisdropped
GROUP BY attrelid;
Получение этогоошибка:
SQL Error [1]: Query failed (#20190927_165928_00937_zga4f): line 4:63: identifiers must not contain ':'