Re: Duda

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
>
>
>
>

In response to

  • RE: Duda at 2019-02-28 15:00:12 from Esneiker Enriquez Cabrera

Responses

  • RE: Duda at 2019-02-28 18:43:24 from Esneiker Enriquez Cabrera
  • RE: Duda at 2019-02-28 19:55:29 from Esneiker Enriquez Cabrera

Browse pgsql-es-ayuda by date

  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