DISTINCT ON
Este es uno de los favoritos en el uso, es una re-interpretación del DISTINCT, excepto que nos permite definir que columnas son las que van a considerarse distintas en la consulta y además en caso que hayan más columnas podremos definir el orden para designar la preferida.
Veamos en la siguiente imagen un ejemplo de a que nos referimos, en este ejemplo vamos a obtener el número tract de una tabla:
La cláusula ON puede tomar varias columnas para hacer la aplicación del DISTINCT y luego con el ***** BY debemos iniciar con las columnas que usamos con el DISTINCT ON y luego nuestras columnas preferidas.
LIMIT y OFFSET
Estas dos cláusulas LIMIT y OFFSET en el query nos ayudan a limitar el número de registros retornados por la consulta. Pueden ser utilizados en conjunto o separados; a pesar de todo no son únicos en PostgreSQL, de hecho son copiados de MySQL.
Un OFFSET de 0 es equivalente a no utilizar la cláusula, usualmente utilizaremos estos dos elementos en conjunción con un ***** BY.
Veamos un ejemplo práctico para ver de mejor manera cómo funcionan los mismos:
Como vemos estamos incorporando estas dos clausulas al query que ya habíamos visto, notamos que limitamos el resultado a 3 registros y con el OFFSET le decimos que inicie luego del segundo resultado en el orden, por lo que el primer resultado será el tercer registro.
ILIKE
Esta cláusula nos permite hacer búsquedas dentro de los textos de forma independiente de las mayúsculas, nos sirve bastante ya que podemos elaborar búsquedas muy amplias sin temor a que se nos queden resultados por fuera debido a la forma de escritura del término a ubicar.
La consulta con la cual podemos realizar esto es el siguiente:
SELECT tract_name FROM census.lu_tracts WHERE tract_name ILIKE '%duke%';
Si nos fijamos el resultado que produciría esto sería algo así:
Como vemos es bastante sencillo. Existe una forma de emular este comportamiento en ANSI-SQL y es haciendo uso de la función UPPER en ambos extremos de la búsqueda, sin embargo con este operador único de PostgreSQL nos ahorramos más trabajo.
Con esto terminamos el tutorial, ya conocemos un poco más de las ventajas de PostgreSQL al momento de utilizar sus elementos únicos que nos ayudan a darle una extensión a la funcionalidad del ANSI-SQL y de esta forma tener una gama de opciones mucho mayor para cubrir distintas necesidades que puedan surgir en las Base de Datos que administremos.