我想做的就是选择max(f1,f2,f3)。我知道这是行不通的 ,但是我想我想要的应该很清楚 (请参阅更新1)。 " ~/ ?" j$ v7 b/ Q6 I1 G3 Z+ [我当时在考虑选择select max(concat(f1,’-‘,f20 z) m) B0 K1 i
…)),但这有很多缺点。特别是,执行concat可能会减慢速度。得到我想要的最好的方法是什么?8 o( m8 l( X1 i' m1 o* `1 h7 {
更新1:到目前为止,我得到的答案不是我要的。max处理一组记录,但是只使用一个值比较它们;我希望max考虑多个值,就像order+ y" J5 @% ^; R
by可以考虑多个值的方式一样。 $ ? W: V* G1 ?更新2:假设我有下表: + h; }9 W9 @# @' I" aid class_name order_by1 order_by_2+ W* f1 T- `/ Q& c, {
1 a 0 0 $ N/ i! n" X, p6 N2 v 2 a 0 1 . |! F/ [( ~2 _; ^/ D) f) q( b# { 3 b 1 0 $ S+ f4 s8 A; Z% W 4 b 0 90 s9 p5 T: q5 e/ h6 P* q1 g! Y
3 n, g3 c2 [+ j- h
我想要一个按class_name对记录进行分组的查询。然后,在每个“类”中,选择先order_by1升后order_by2降先排序的记录。结果集将由记录2和3组成。在我神奇的查询语言中,它看起来像这样: 9 {, a# y6 t% V" H3 pselect max(* order by order_by1 ASC, order_by2 ASC) 7 i& s3 N" A4 r U$ hfrom table! ^7 e7 K b+ g! ^4 ?
group by class_name' G' C( ^3 H. z% |4 Y6 W4 N
, s; F1 }, `( v+ D+ N. F$ q0 l解决方案: $ ^: P0 ]/ W# |8 a% o' X$ K" F$ t & f& b; S o$ i2 y
% n4 @; f- M; U6 k/ P$ D
9 O, v9 W8 C, H
根据我对另一个问题的回答:SQL-SELECTMAX()及其伴随字段: H, p. I5 w. ]7 a5 r3 Y+ y
要使其适用于多列,请将更多列添加到内部选择的ORDER BY中。