実際、これは SELECTの通常のDISTINCT修飾子ですが、誤解を招く構文があります(その点については正しいです)。
DISTINCTは関数ではなく、常にキーワードです。ここでは、関数であるかのように(間違って)使用されていますが、
select distinct(pattern) as pattern, style, ... etc ...
from styleview
where ... etc ...
実際には、次のすべての形式と同等です。
-distinct
の後にスペースを追加します :
select distinct (pattern) as pattern, style, ... etc ...
from styleview
where ... etc ...
-列名を囲む括弧を削除します:
select distinct
pattern as pattern, style, ... etc ...
from
styleview
where
... etc ...
-句の内容をインデントする:
select distinct
pattern as pattern, style, ... etc ...
from
styleview
where
... etc ...
-列名と同じ冗長エイリアスを削除します:
select distinct
pattern, style, ... etc ...
from
styleview
where
... etc ...
補足資料:
- http:// weblogs.sqlteam.com/jeffs/archive/2007/10/12/sql-distinct-group-by.aspx
- https://stackoverflow.com/a/1164529
注:のOMGポニー現在の質問
DISTINCT ON
について言及しました PostgreSQLで機能する拡張機能。
しかし(Jayがコメントで正しく述べているように)クエリ(および結果)が異なるため、ここで使用されているものではありません。例:
select distinct on(pattern) pattern, style, ... etc ...
from styleview
where ... etc ...
order by pattern, ... etc ...
同等:
select distinct on (pattern)
pattern, style, ... etc ...
from
styleview
where
... etc ...
order by
pattern, ... etc ...
補足資料:
注:への回答のLukasEder現在の質問
集計関数内でDISTINCTキーワードを使用する構文について言及しました:
COUNT(DISTINCT (foo, bar, ...))
HSQLDBが特徴とする構文
(またはCOUNT(DISTINCT foo, bar, ...)
これはMySQLでも機能しますが、PostgreSQL、SQL Server、Oracleなどでも機能します。
しかし(明らかに十分ですが)ここで使用されているものではありません。