小编典典

在SQL的多个字段中选择最大值的最佳方法是什么?

sql

我想做的就是选择max(f1,f2,f3)。我知道这是行不通的 ,但是我想我想要的应该很清楚 (请参阅更新1)。

我当时在考虑选择select max(concat(f1,’-‘,f2
…)),但这有很多缺点。特别是,执行concat可能会减慢速度。得到我想要的最好的方法是什么?

更新1:到目前为止,我得到的答案不是我要的。max处理一组记录,但是只使用一个值比较它们;我希望max考虑多个值,就像order
by可以考虑多个值的方式一样。

更新2:假设我有下表:

id class_name order_by1 order_by_2
 1          a         0          0
 2          a         0          1
 3          b         1          0
 4          b         0          9

我想要一个按class_name对记录进行分组的查询。然后,在每个“类”中,选择先order_by1升后order_by2降先排序的记录。结果集将由记录2和3组成。在我神奇的查询语言中,它看起来像这样:

select max(* order by order_by1 ASC, order_by2 ASC)
from table
group by class_name

阅读 258

收藏
2021-04-22

共1个答案

小编典典

根据我对另一个问题的回答:SQL-SELECTMAX()及其伴随字段

要使其适用于多列,请将更多列添加到内部选择的ORDER BY中。

2021-04-22