Sebenarnya ini adalah qualifier DISTINCT biasa pada SELECT -- tetapi dengan sintaks yang menyesatkan (Anda benar tentang hal itu).
DISTINCT tidak pernah merupakan fungsi, selalu kata kunci. Di sini digunakan (salah) seolah-olah itu adalah fungsi, tetapi
select distinct(pattern) as pattern, style, ... etc ...
from styleview
where ... etc ...
sebenarnya setara dengan semua bentuk berikut:
-- tambahkan spasi setelah distinct
:
select distinct (pattern) as pattern, style, ... etc ...
from styleview
where ... etc ...
-- hapus tanda kurung di sekitar nama kolom:
select distinct
pattern as pattern, style, ... etc ...
from
styleview
where
... etc ...
-- isi klausa indentasi:
select distinct
pattern as pattern, style, ... etc ...
from
styleview
where
... etc ...
-- hapus alias berlebihan yang identik dengan nama kolom:
select distinct
pattern, style, ... etc ...
from
styleview
where
... etc ...
Bacaan pelengkap:
- http:// weblogs.sqlteam.com/jeffs/archive/2007/10/12/sql-distinct-group-by.aspx
- https://stackoverflow.com/a/164529
Catatan:OMG Ponies di jawaban untuk menyajikan pertanyaan
menyebutkan DISTINCT ON
ekstensi yang ditampilkan oleh PostgreSQL.
Tetapi (seperti yang dikatakan Jay dengan tepat dalam komentar) bukan itu yang digunakan di sini, karena kueri (dan hasilnya) akan berbeda, mis.:
select distinct on(pattern) pattern, style, ... etc ...
from styleview
where ... etc ...
order by pattern, ... etc ...
setara dengan:
select distinct on (pattern)
pattern, style, ... etc ...
from
styleview
where
... etc ...
order by
pattern, ... etc ...
Bacaan pelengkap:
Catatan:Lukas Eder di jawaban atas menyajikan pertanyaan
menyebutkan sintaks penggunaan kata kunci DISTINCT di dalam fungsi agregat:
the COUNT(DISTINCT (foo, bar, ...))
sintaks yang ditampilkan oleh HSQLDB
(atau COUNT(DISTINCT foo, bar, ...)
yang bekerja untuk MySQL juga, tetapi juga untuk PostgreSQL, SQL Server, Oracle, dan mungkin yang lain).
Tapi (cukup jelas) bukan itu yang digunakan di sini.