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

Cách sạch sẽ để sử dụng các chức năng cửa sổ postgresql trong django ORM?

Kể từ Django 2.0, nó được tích hợp sẵn trong ORM. Xem các chức năng của cửa sổ

# 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. Khi autovacuum không hút chân không

  2. Đếm tổng tích lũy trong Postgresql

  3. Thay vì LIKE và ~, tại sao chỉ SIMILAR TO hoạt động khi thực hiện kết hợp regex với các lựa chọn thay thế

  4. Cài đặt Odoo trên Mac Không thể Thực thi Lệnh LESSC

  5. Cách cài đặt PostgreSQL 12 trên Ubuntu 20.04 / 18.04 / 16.04