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

Как трябва да обработвам класирани x от y данни в PostgreSQL?

Ако искате ранга, направете нещо като

SELECT id,num,rank FROM (
  SELECT id,num,rank() OVER (ORDER BY num) FROM foo
) AS bar WHERE id=4

Или ако наистина искате номера на реда, използвайте

SELECT id,num,row_number FROM (
  SELECT id,num,row_number() OVER (ORDER BY num) FROM foo
) AS bar WHERE id=4

Те ще се различават, когато имате еднакви стойности някъде. Има и dense_rank(), ако имате нужда от това.

Това изисква PostgreSQL 8.4, разбира се.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. HikariPool-1 - Неуспешно валидиране на връзката [имейл защитен] (Тази връзка е затворена.)

  2. SQL заявка за намиране на запис с идентификатор, който не е в друга таблица

  3. Вземете записи, където ключът на колоната на json е нулев

  4. Как мога да кажа на PostgreSQL да не прекъсва цялата транзакция, когато едно ограничение е неуспешно?

  5. Как да обработвам разпределена транзакция в postgresql?