PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Hibernate Distinct с подреждане по

Няма смисъл да се подрежда по колона, която не е част от избрания distinct колони.

Тъй като не се присъединявате с колекция, вашите записи така или иначе ще бъдат различни (поне PK ще се различава), можете просто да пропуснете distinct:

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))

По принцип, когато наистина има дубликати в набора от резултати и искате да ги елиминирате, можете да го постигнете с подзаявка:

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))

Другото предимство на този подход е, че той вероятно е по-добър по отношение на производителността като distinct редове обикновено е скъпа операция в базата данни.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Променете имената на колоните в таблицата с главни букви в postgre

  2. Как да разрешите проблема с разрешението при стартиране на Postgresql от minikube?

  3. Единичният тест на Django е неуспешен за множество схеми на Postgres

  4. Как да получите текущата дата в PostgreSQL

  5. Използвайте стойностите на редовете като колони в PostgreSQL