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 (< eenriq...@cav.desoft.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.:* eenriq...@cav.desoft.cu > > > > *De:* Anthony Sotolongo [mailto:asotolo...@gmail.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 (< > eenriq...@cav.desoft.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.:* eenriq...@cav.desoft.cu > > > >