Я нуждаюсь в том, чтобы присоединить query, который пользователь бросает в доклад статистики по консультациям длинной продолжительности службы в Amazon Redshift (основанный на PostgreSQL). Я получаю этих от следующего способа:
select query as idquery,wlm_start_time as inicio,queue_time as
tiempo_en_cola_microseg,exec_time as tiempo_ejecucion_microseg,
(tiempo_en_cola_microseg+tiempo_ejecucion_microseg) as tiempo_total_microseg
,state as estado,
mod(cast(floor(tiempo_total_microseg/3600000000) as integer),24) || ':' ||
mod(cast(floor(tiempo_total_microseg/60000000) as integer),60) || ':' ||
mod(cast(floor(tiempo_total_microseg/1000000) as integer),60) as
duracion_hhmmss,
case tiempo_total_microseg
when tiempo_total_microseg>28800000000
then 'CRITICAL' else 'WARNING'
end as situacion
from stv_wlm_query_state
where tiempo_total_microseg >= 14400000000
order by duracion_hhmmss;
Сейчас, я нуждаюсь в том, чтобы взять поле query
и искать весь текст ( select
если) в другой таблице:
select * from stl_querytext where query = 1319600;
Проблема состоит в том, что вышеупомянутая консультация бросает следующий результат:
А именно, решение разделяет ее на несколько последовательностей. Мне нужно, чтобы вся консультация появилась в единственном поле, чтобы это присоединять в консультацию наверху, так как этот результат экспортируется в .CSV
Из какого способа он мог бы делать это?
DespuГ©s перечитывания этого несколько раз, я верю в то, что понимаю, что того, в чем ты нуждаешься, объединять все куски поля text
, чтобы делать Гєnica query .
Что-то такое что asГ-:
select listagg(text)
within group (order by sequence) as fullquery,
from stl_querytext where query = 1319600;
InformaciГіn listagg
: https://docs.aws.amazon.com/redshift/latest/dg/r_LISTAGG.html
text
. А именно, в конце концов, deberí чтобы оставаться:idquery inicio tiempo_en_cola_microseg tiempo_ejecucion_microseg tiempo_total_microseg estado duracion_hhmmss situacion text
– lk2_89 21.03.2019, 17:43... as duracion_hhmmss, listagg(text) within group (order by sequence) as fullquery, case tiempo_total_microseg when tiempo_total_microseg>28800000000 then 'CRITICAL' else 'WARNING' end as situacion from stv_wlm_query_state a, stl_querytext b where a.query=b.query and tiempo_total_microseg >= 14400000000 order by duracion_hhmmss;
Ошибка: column " в query" must appear in the GROUP BY clause or be used in an aggregate function – lk2_89 21.03.2019, 18:09create temp view fullqueries as select query, listagg(text) within group (order by sequence) as fullquery from stl_querytext
. – ChemaCortes 21.03.2019, 18:33