首页 > 解决方案 > Django:如何从表中的每一行中选择列及其最大值和最小值的值?

问题描述

我有一张这种形状的桌子:

id | origin |    ABC     |    DEF     |   .....  |  XPTO
 1 |   ABC  |     0      | a number   | a number | a number 
 2 |   DEF  |  a number  |     0      | a number | a number 

如您所见,origin 列中的值也是列。并且每次原点匹配一列时,该值为 0。(这表示距离,因此与自身的距离为 0)。

所以我需要为每一行检索最小值和最大值(不包括值 0,大于有效值)以及包含这些值的列。

例如,对于下表:

id | origin |    ABC     |    DEF     |   GHI    |   XPTO
 1 |   ABC  |     0      |    10.2    |   2.5    |   27.0
 2 |   DEF  |    45.8    |     0      |   20.34  |    4.0
...

如果查询返回这样的字典列表,那将是完美的:

[
 {'origin': 'ABC', 'GHI': 2.5, 'XPTO': 27.0},
 {'origin': 'DEF', 'XPTO': 4.0, 'ABC': 45.8},
 ...
]

标签: pythondjangosqlitedjango-orm

解决方案


推荐阅读