Usar Alias en clausula Where en PostgreSql

A veces necesitamos tomar del resultado de una query un alias como criterio para filtrar el resultado. Una forma que encontré fue la siguiente:

SELECT * FROM (

SELECT u.udi_id, u.udi_nombre, u.sem_codigo, m.car_id,

(SELECT COUNT(mud.udi_id) FROM matricula_unidad_didactica AS mud INNER JOIN matricula AS ma ON mud.mat_id=ma.mat_id WHERE mud.udi_id=u.udi_id AND ma.sem_codigo='II' AND ma.mat_anio_academico=2015 AND mud.mud_asistencia_porcentaje>=mud.mud_asistencia_minima AND (mud.mud_nota_final >= mud.mud_nota_evaluacion_minima AND mud.mud_nota_final < mud.mud_nota_minima) GROUP BY mud.udi_id) AS cantidad_evaluacion FROM unidad_didactica AS u INNER JOIN modulo AS m ON u.mod_id=m.mod_id INNER JOIN carrera AS c ON m.car_id=c.car_id WHERE u.sem_codigo = 'II' AND u.udi_eliminado = '0' ORDER BY u.udi_nombre ASC

) AS tabla WHERE cantidad_evaluacion>0

Esta query entre sus columnas devuelve una columna generada por una subquery, este resultado pertenece a una query principal que usa el alias en el where.

Es un tip simple pero útil en algunos casos.

Añadir un comentario

El código HTML se muestra como texto y las direcciones web se transforman automáticamente.

Discusiones sobre el mismo tema

URL de retroenlace : http://creativapixel.com/blog/index.php?trackback/11

16 reads