【发布时间】:2021-03-27 03:47:03
【问题描述】:
我有一个类似下表的模型,
create table `mytable`
(
`person` varchar(10),
`groupname` int,
`age` int
);
我想从每个组中选出 2 位最年长的人。原始的 SQL 问题和答案在这里StackOverflow 和其中一个可行的解决方案是
SELECT
person,
groupname,
age
FROM
(
SELECT
person,
groupname,
age,
@rn := IF(@prev = groupname, @rn + 1, 1) AS rn,
@prev := groupname
FROM mytable
JOIN (SELECT @prev := NULL, @rn := 0) AS vars
ORDER BY groupname, age DESC, person
) AS T1
WHERE rn <= 2
您也可以在此处查看 SQL 输出SQLFIDLE
我只想知道如何在 Django 的视图中将这个查询实现为查询集。
【问题讨论】:
标签: django django-orm