目标:使用 RowNumber 函数获取每行的编号,然后按值进行过滤,但保留不应用过滤器时给出的相应 RowNumber,否则 RowNumber 将始终返回 1。
\n\n在转换为 Django ORM 之前,我发现获取 SQL 语法很有帮助,如下所示:
\n\nSELECT rn.row_number, name \nFROM ( SELECT ROW_NUMBER() OVER (ORDER BY name), name\n FROM customer ) as rn\nWHERE name = 'Juan' \nRun Code Online (Sandbox Code Playgroud)\n\n问题我可以\xc2\xb4t 设法将其转换为 Django ORM。我已经尝试过以下方法:
\n\nsubq = models.Customer.objects.all().annotate(\n rank=Window(\n expression=RowNumber(),\n order_by=(F('name'))\n )\n )\nRun Code Online (Sandbox Code Playgroud)\n\nHere\xc2\xb4s 我不\xc2\xb4t 不知道如何继续。如何告诉我的models.Customer在其查询中使用subq作为FROM?
\n| 归档时间: |
|
| 查看次数: |
175 次 |
| 最近记录: |