PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

fungsi yang berbeda () (tidak memilih kualifikasi) di postgres

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:

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengoptimalkan banyak gabungan

  2. Postgres - Berfungsi untuk mengembalikan persimpangan 2 ARRAY?

  3. Cara Menampilkan Nilai Null Saat Menjalankan Kueri di psql (PostgreSQL)

  4. psql.exe - otentikasi kata sandi gagal di windows

  5. Saya lupa kata sandi yang saya masukkan saat instalasi postgres