From: | Anthony Sotolongo <asotolongo(at)gmail(dot)com> |
---|---|
To: | Esneiker Enriquez Cabrera <eenriquez(at)cav(dot)desoft(dot)cu> |
Cc: | POSTGRES <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Duda |
Date: | 2019-02-28 15:54:37 |
Message-ID: | CAASDfF1NE4dJUP7MLTJMvTgBsME4wF0HrMyGivgK-WFiDAwEYw@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Creo que puedo aplicar el CTE en tu caso, donde en ese CTE calcules los
count y retornes además tablax.id_procedencia,
y luego hacer un join entre el CTE y tu consulta principal por el
id_procedencia
Refina o ajusta un poco esta idea... a tu escenario
WITH sub as (
select count(id) as cantidad,id_procedencia from tablax where
tablax.id_estado = 1 and tablax.fecha between valor1 and valor2 group by
id_procedencia
)
Select clasificador,
sub.cantidad
From clasificadores, sub where sub.id_procedencia =
clasificadores.id_procedencia
Saludos
El jue., 28 feb. 2019 a las 12:01, Esneiker Enriquez Cabrera (<
eenriquez(at)cav(dot)desoft(dot)cu>) escribió:
> Muchas gracias Anthony por tu pronta recomendación, voy a revisar lo que
> me mandas.
>
> Lo siguiente es algún ejemplo de criterios que uso, te lo pongo en rojo
>
>
>
> Select clasificador,
>
> (select count(id) from tablax where tablax.id_estado = 1 and tablax.id_procedencia
> = clasificadores.id_procedencia and tablax.fecha between valor1 and valor2)
> as cantidad 1,
>
> (select count(id) from tablax where criterio) as cantidad 2,
>
> (select count(id) from tablax where criterio) as cantidad 3
>
> From clasificadores where criterio
>
>
>
>
>
> Saludos,
>
> *M.Sc. Ing. Esneiker Enriquez Cabrera*
> *Esp. B en Ciencias Informáticas*
>
> Desoft en Ciego de Ávila. Joaquín de Aguero esq. Calle 2. Ciego de Ávila.
> Cuba.
> *Telf.:* 266200 Ext 119, *email.:* eenriquez(at)cav(dot)desoft(dot)cu
>
>
>
> *De:* Anthony Sotolongo [mailto:asotolongo(at)gmail(dot)com]
> *Enviado el:* jueves, 28 de febrero de 2019 9:36
> *Para:* Esneiker Enriquez Cabrera
> *CC:* POSTGRES
> *Asunto:* Re: Duda
>
>
>
> Hola Esneiker,
>
>
>
> tal vez te pueda ayudar un poco de "azúcar sintáctica" de las funciones
> de agregado con el filter(creo que desde 9.4 )
> https://www.postgresql.org/docs/9.4/sql-expressions.html
>
>
>
> y además puede que escribir las subconsultas en algún CTE, te permita
> disminuir los recorridos de la tablax.
>
>
>
>
>
> Si pudieras enviar la consulta más terminada sobre todo con el "criterio"
> se te pueda orientar un poco mejor
>
>
>
>
>
>
>
> Saludos
>
>
>
>
>
>
>
>
>
>
>
> El jue., 28 feb. 2019 a las 10:59, Esneiker Enriquez Cabrera (<
> eenriquez(at)cav(dot)desoft(dot)cu>) escribió:
>
> Hola a todos,
>
> Necesito que me den sugerencias acerca de cómo puedo cambiar el diseño de
> una consulta para mejorar el rendimiento. Necesito devolver resultados en
> un reporte donde la salida tiene la forma:
>
>
>
> clasificador
>
> Cantidad1
>
> Cantidad2
>
> Cantidad3
>
> Cantidad n
>
> Clasificador 1
>
> 1
>
> 0
>
> 0
>
>
>
> Clasificador 2
>
> 1
>
> 1
>
> 0
>
>
>
> Clasificador 3
>
> 1
>
> 1
>
> 0
>
>
>
> Clasificador n
>
> 1
>
> 1
>
> 0
>
>
>
>
>
> Para obtener la información uso una consulta con el siguiente diseño:
>
>
>
> Select clasificador,
>
> (select count(id) from tablax where criterio) as cantidad 1,
>
> (select count(id) from tablax where criterio) as cantidad 2,
>
> (select count(id) from tablax where criterio) as cantidad 3
>
> From clasificadores where criterio
>
>
>
> La cuestión es cómo podría mejorar el diseño de la consulta para mejorar
> rendimiento porque en la tabla x hay muchos registros y la consulta se
> demora. Por supuesto en los criterios filtro las subconsultas internas con
> la externa pero no me parece que el diseño esté eficiente.
>
> Saludos,
>
> *M.Sc. Ing. Esneiker Enriquez Cabrera*
> *Esp. B en Ciencias Informáticas*
>
> Desoft en Ciego de Ávila. Joaquín de Aguero esq. Calle 2. Ciego de Ávila.
> Cuba.
> *Telf.:* 266200 Ext 119, *email.:* eenriquez(at)cav(dot)desoft(dot)cu
>
>
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Carlos T. Groero Carmona | 2019-02-28 18:10:18 | El rendimiento de postgres puede ser afectado por checkpoint_segments? |
Previous Message | Esneiker Enriquez Cabrera | 2019-02-28 15:00:12 | RE: Duda |