Ve skutečnosti to je běžný kvalifikátor DISTINCT na SELECT – ale se zavádějící syntaxí (v tom máte pravdu).
DISTINCT není nikdy funkce, vždy klíčové slovo. Tady je to použito (špatně), jako by to byla funkce, ale
select distinct(pattern) as pattern, style, ... etc ...
from styleview
where ... etc ...
je ve skutečnosti ekvivalentní všem následujícím formám:
-- přidejte mezeru za distinct
:
select distinct (pattern) as pattern, style, ... etc ...
from styleview
where ... etc ...
-- odstraňte závorky kolem názvu sloupce:
select distinct
pattern as pattern, style, ... etc ...
from
styleview
where
... etc ...
-- obsah klauzulí odsazení:
select distinct
pattern as pattern, style, ... etc ...
from
styleview
where
... etc ...
-- odstraňte nadbytečný alias identický s názvem sloupce:
select distinct
pattern, style, ... etc ...
from
styleview
where
... etc ...
Doplňující četba:
- http:// weblogs.sqlteam.com/jeffs/archive/2007/10/12/sql-distinct-group-by.aspx
- https://stackoverflow.com/a/1164529
Poznámka:OMG Ponies v odpovědi na aktuální otázka
zmínil DISTINCT ON
rozšíření prezentované PostgreSQL.
Ale (jak Jay správně poznamenal v komentáři) není to to, co se zde používá, protože dotaz (a výsledky) by byly jiné, např.:
select distinct on(pattern) pattern, style, ... etc ...
from styleview
where ... etc ...
order by pattern, ... etc ...
ekvivalentní:
select distinct on (pattern)
pattern, style, ... etc ...
from
styleview
where
... etc ...
order by
pattern, ... etc ...
Doplňující četba:
Poznámka:Lukas Eder v odpovědi na aktuální otázka
zmínil syntaxi použití klíčového slova DISTINCT uvnitř agregační funkce:
the COUNT(DISTINCT (foo, bar, ...))
syntaxe obsažená v HSQLDB
(nebo COUNT(DISTINCT foo, bar, ...)
což funguje také pro MySQL, ale také pro PostgreSQL, SQL Server, Oracle a možná další).
Ale (jasně) to není to, co se zde používá.