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

Чист начин за използване на функциите на прозореца на postgresql в django ORM?

От Django 2.0 той е вграден в ORM. Вижте функциите на прозореца

# 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. Защо функциите PL/pgSQL могат да имат страничен ефект, докато SQL функциите не могат?

  2. хибернация с c3p0:createClob() все още не е внедрен

  3. Използване на row_to_json() с вложени съединения

  4. SequelizeConnectionError:самоподписан сертификат

  5. Как да свързвам SQL променливи в PHP?