Na verdade, isso é o qualificador DISTINCT comum em um SELECT -- mas com uma sintaxe enganosa (você está certo sobre esse ponto).
DISTINCT nunca é uma função, sempre uma palavra-chave. Aqui é usado (erroneamente) como se fosse uma função, mas
select distinct(pattern) as pattern, style, ... etc ...
from styleview
where ... etc ...
é de fato equivalente a todas as seguintes formas:
-- adicione um espaço após
distinct
: select distinct (pattern) as pattern, style, ... etc ...
from styleview
where ... etc ...
-- remova os parênteses ao redor do nome da coluna:
select distinct
pattern as pattern, style, ... etc ...
from
styleview
where
... etc ...
-- conteúdo das cláusulas de recuo:
select distinct
pattern as pattern, style, ... etc ...
from
styleview
where
... etc ...
-- remova o alias redundante idêntico ao nome da coluna:
select distinct
pattern, style, ... etc ...
from
styleview
where
... etc ...
Leitura complementar:
- http:// weblogs.sqlteam.com/jeffs/archive/2007/10/12/sql-distinct-group-by.aspx
- https://stackoverflow.com/a/1164529
Nota:OMG Pôneis em uma resposta para o presente pergunta mencionou o
DISTINCT ON
extensão apresentada pelo PostgreSQL.Mas (como Jay corretamente observou em um comentário) não é o que é usado aqui, porque a consulta (e os resultados) teriam sido diferentes, por exemplo:
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 ...
Leitura complementar:
Observação:Lukas Eder em uma resposta ao presente pergunta mencionou a sintaxe de usar a palavra-chave DISTINCT dentro de uma função agregada:
o
COUNT(DISTINCT (foo, bar, ...))
sintaxe apresentada pelo HSQLDB(ou
COUNT(DISTINCT foo, bar, ...)
que funciona para MySQL também, mas também para PostgreSQL, SQL Server, Oracle e talvez outros).Mas (claramente) não é o que é usado aqui.