PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Cara bersih untuk menggunakan fungsi jendela postgresql di Django ORM?

Sejak Django 2.0 sudah terpasang di dalam ORM. Lihat fungsi-jendela

# models.py
class GameScore(models.Model):
     user_id = models.IntegerField()
     score = models.IntegerField()

# window function usage
from django.db.models.expressions import Window
from django.db.models.functions import Rank

GameScore.objects.annotate(rank=Window(
    expression=Rank(),
    order_by=F('score').desc(),
    partition_by=[F('user_id')]))

# generated sql
SELECT "myapp_gamescore"."id",
   "myapp_gamescore"."user_id",
   "myapp_gamescore"."score",
   RANK() OVER (
     PARTITION BY "myapp_gamescore"."user_id"
     ORDER BY "myapp_gamescore"."score" DESC
   ) AS "rank"
FROM "myapp_gamescore"


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara memasukkan baris yang dikecualikan di RETURNING from INSERT ... ON CONFLICT

  2. Perbedaan antara cap waktu dengan/tanpa zona waktu di PostgreSQL

  3. PILIH atau MASUKKAN satu baris dalam satu perintah

  4. Bagaimana cara mengetahui partisi mana yang akan digunakan dalam partisi hash Postgres?

  5. Batasan tabel silang di PostgreSQL