In realtà questo è il normale qualificatore DISTINCT su un SELECT -- ma con una sintassi fuorviante (hai ragione su questo punto).
DISTINCT non è mai una funzione, sempre una parola chiave. Qui è usata (erroneamente) come se fosse una funzione, ma
select distinct(pattern) as pattern, style, ... etc ...
from styleview
where ... etc ...
è infatti equivalente a tutte le seguenti forme:
-- aggiungi uno spazio dopo distinct
:
select distinct (pattern) as pattern, style, ... etc ...
from styleview
where ... etc ...
-- rimuovi le parentesi attorno al nome della colonna:
select distinct
pattern as pattern, style, ... etc ...
from
styleview
where
... etc ...
-- contenuto delle clausole di rientro:
select distinct
pattern as pattern, style, ... etc ...
from
styleview
where
... etc ...
-- rimuove l'alias ridondante identico al nome della colonna:
select distinct
pattern, style, ... etc ...
from
styleview
where
... etc ...
Lettura complementare:
- http:// weblogs.sqlteam.com/jeffs/archive/2007/10/12/sql-distinct-group-by.aspx
- https://stackoverflow.com/a/1164529
Nota:OMG Ponies in una risposta al presente domanda
menzionato il DISTINCT ON
estensione presentata da PostgreSQL.
Ma (come ha giustamente osservato Jay in un commento) non è ciò che viene utilizzato qui, perché la query (e i risultati) sarebbero stati diversi, ad esempio:
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 ...
Lettura complementare:
Nota:Lukas Eder in una risposta al presente domanda
menzionato la sintassi dell'utilizzo della parola chiave DISTINCT all'interno di una funzione aggregata:
the COUNT(DISTINCT (foo, bar, ...))
sintassi presentata da HSQLDB
(o COUNT(DISTINCT foo, bar, ...)
che funziona anche per MySQL, ma anche per PostgreSQL, SQL Server, Oracle e forse altri).
Ma (abbastanza chiaramente) non è quello che viene usato qui.