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

Hibernate Khác biệt với đơn đặt hàng của

Sẽ không hợp lý khi sắp xếp theo cột không thuộc distinct đã chọn cột.

Vì bạn không tham gia với một bộ sưu tập, bản ghi của bạn dù sao cũng sẽ khác biệt (ít nhất PK sẽ khác nhau), bạn chỉ có thể bỏ qua phần riêng biệt:

select distinct city 
from City city 
  where city.id is not null 
    and upper(city.name) != upper('Unknown')  
    and city.state.id =:stateId 
order by upper(trim(city.name))

Nói chung, khi thực sự có các bản sao trong tập hợp kết quả và bạn muốn loại bỏ chúng, bạn có thể đạt được điều đó bằng một truy vấn con:

select city
from City city
  where city.id in (select c.id from City c join c.someCollection sc where ...)
order by upper(trim(city.name))

Lợi ích khác của phương pháp này là nó có thể tốt hơn về mặt hiệu suất, vì distinct ing hàng thường là một hoạt động tốn kém trong cơ sở dữ liệu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Các nút radio được chọn bằng ng-model

  2. Trả về kết quả x đầu tiên từ mỗi nhóm trong truy vấn SQL

  3. PostgreSQL Logical Replication Gotchas

  4. Các chức năng trả về thiết lập không được phép trong CẬP NHẬT khi sử dụng Postgres 10

  5. Bắt đầu và điền vùng chứa Postgres trong Docker