ORM查询一个表中有两个字段相同时,只获取某个值最大的一条

Table表如下:

 

 

 

 获取表中name和hex值相同时age最大的那一条 

 

ORM写法,两次查询

 

ids = table.values('name', 'age').annotate(id=Max('id')).values_list('id', flat=True)
res = table.filter(id__in=ids).order_by('id')

 

 

SQL写法,未尝试

SELECT
    SUBSTRING_INDEX(GROUP_CONCAT(CONCAT_WS(',', name, Hex, Age) ORDER BY ID DESC SEPARATOR '|'), '|', 1)
FROM
    table_name
GROUP BY
    name, Hex

 

posted @ 2022-04-22 11:18  长情不羁的五年  阅读(120)  评论(0编辑  收藏  举报