En realidad esto es el calificador DISTINCT ordinario en un SELECT, pero con una sintaxis engañosa (tienes razón en ese punto).
DISTINCT nunca es una función, siempre una palabra clave. Aquí se usa (mal) como si fuera una función, pero
select distinct(pattern) as pattern, style, ... etc ...
from styleview
where ... etc ...
es de hecho equivalente a todas las formas siguientes:
-- agregue un espacio después de distinct
:
select distinct (pattern) as pattern, style, ... etc ...
from styleview
where ... etc ...
-- elimine los paréntesis alrededor del nombre de la columna:
select distinct
pattern as pattern, style, ... etc ...
from
styleview
where
... etc ...
-- sangrar el contenido de las cláusulas:
select distinct
pattern as pattern, style, ... etc ...
from
styleview
where
... etc ...
-- eliminar el alias redundante idéntico al nombre de la columna:
select distinct
pattern, style, ... etc ...
from
styleview
where
... etc ...
Lectura complementaria:
- http:// weblogs.sqlteam.com/jeffs/archive/2007/10/12/sql-distinct-group-by.aspx
- https://stackoverflow.com/a/1164529
Nota:OMG Ponies en una respuesta a la presente pregunta
mencionó el DISTINCT ON
extensión presentada por PostgreSQL.
Pero (como Jay señaló correctamente en un comentario) no es lo que se usa aquí, porque la consulta (y los resultados) habrían sido diferentes, por ejemplo:
select distinct on (pattern)
pattern, style, ... etc ...
from
styleview
where
... etc ...
order by
pattern, ... etc ...
equivalente a:
select distinct on (pattern)
pattern, style, ... etc ...
from
styleview
where
... etc ...
order by
pattern, ... etc ...
Lectura complementaria:
Nota:Lukas Eder en una respuesta a la presente pregunta
mencionó la sintaxis de usar la palabra clave DISTINCT dentro de una función agregada:
the COUNT(DISTINCT (foo, bar, ...))
sintaxis presentada por HSQLDB
(o COUNT(DISTINCT foo, bar, ...)
que también funciona para MySQL, pero también para PostgreSQL, SQL Server, Oracle y tal vez otros).
Pero (claramente) no es lo que se usa aquí.