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

SQL отделни множество колони

въпросите обикновено се решават с помощта на прозоречни функции:

select *
from (
   select book_id, author_id, mark, year, 
          row_number() over (partition by author_id order by case mark when 'GREAT' then 1 when 'MEDIUM' then 2 else 3 end) as rn
   from books
) t
where rn = 1;

Горното е стандартен ANSI SQL, но в Postgres използва (собствения) distinct on обикновено е много по-бърз:

select distinct on (author_id) book_id, author_id, mark, year, 
from books
order by author_id, 
         case mark when 'GREAT' then 1 when 'MEDIUM' then 2 else 3 end



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Транзакция във функция plpgsql

  2. Ремонт на Postgresql след надстройка до OSX 10.7 Lion

  3. Масив от съставен тип като вход за съхранена процедура, предаван от C# Npgsql

  4. Как да задам първичен ключ за автоматично увеличение в PostgreSQL?

  5. Обединяване на таблици в колони от съставен чужд/първичен ключ в заявка