PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

chức năng khác biệt () (không chọn bộ định nghĩa) trong postgres

Trên thực tế đây định tính DISTINCT thông thường trên SELECT - nhưng có cú pháp gây hiểu lầm (bạn nói đúng về điểm đó).

DISTINCT không bao giờ là một hàm, luôn luôn là một từ khóa. Ở đây nó được sử dụng (sai) như thể nó là một hàm, nhưng

select distinct (pattern) as pattern, style, ... etc ...
from styleview
where ... etc ...

trên thực tế tương đương với tất cả các dạng sau:

- thêm dấu cách sau distinct :

select distinct (pattern) as pattern, style, ... etc ...
from styleview
where ... etc ...

- xóa dấu ngoặc đơn xung quanh tên cột:

select distinct
    pattern as pattern, style, ... etc ...
from
    styleview
where
    ... etc ...

- nội dung mệnh đề thụt lề:

select distinct
    pattern as pattern, style, ... etc ...
from
    styleview
where
    ... etc ...

- xóa bí danh thừa giống với tên cột:

select distinct
    pattern, style, ... etc ...
from
    styleview
where
    ... etc ...

Đọc bổ sung:

Lưu ý:Chú ngựa con OMG trong câu trả lời cho trình bày câu hỏi đã đề cập đến DISTINCT ON tiện ích mở rộng được PostgreSQL giới thiệu.
Nhưng (như Jay đã nhận xét đúng trong một nhận xét) nó không phải là thứ được sử dụng ở đây, bởi vì truy vấn (và kết quả) sẽ khác, ví dụ:

select  distinct on (pattern)
    pattern, style, ... etc ...
from
    styleview
where
    ... etc ...
order by
    pattern, ... etc ...

tương đương với:

select  distinct on (pattern)
    pattern, style, ... etc ...
from
    styleview
where
    ... etc ...
order by
    pattern, ... etc ...

Đọc bổ sung:

Lưu ý:Lukas Eder trong câu trả lời cho trình bày câu hỏi đã đề cập đến cú pháp của việc sử dụng từ khóa DISTINCT bên trong một hàm tổng hợp:
the COUNT(DISTINCT (foo, bar, ...)) cú pháp được đặc trưng bởi HSQLDB
(hoặc COUNT(DISTINCT foo, bar, ...) mà cũng hoạt động cho MySQL, nhưng cũng cho PostgreSQL, SQL Server, Oracle và có thể khác).
Nhưng (đủ rõ ràng) nó không phải là những gì được sử dụng ở đây.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. LƯU Ý cho trình tự sau khi chạy di chuyển trong đường ray trên Ứng dụng postgresql

  2. Di chuyển ActiveRecord không điền vào một chế độ xem cụ thể hóa Postgres

  3. Cách cấu hình AppArmor cho PostgreSQL và TimescaleDB

  4. Không thể kết nối với PostgreSQL cục bộ

  5. Postgresql làm thế nào để chọn các giá trị trong cột từ một bảng mà chỉ có sẵn trong một bảng khác?