有没有办法从多个列中选择最大和第二大的数字?
例子:
Col1 = 0;
Col2 = 4;
Col3 = 6;
Col4 = 3;
我最大的是 6,其次是 4。
我正在尝试实现这样的东西:
SELECT GREATEST(Col1, Col2, Col3, Col4) AS High,
GREATEST(Col1, Col2, Col3, Col4) AS Low
WHERE Low < High FROM tbl;
最佳答案
对于 4 列,您可以这样做:
select
greatest(col1, col2, col3, col4) high,
greatest(col1, col2, col3) +
greatest(col1, col2, col4) +
greatest(col1, col3, col4) +
greatest(col2, col3, col4) -
3 * greatest(col1, col2, col3, col4) low
from tablename
您将 3 列的所有组合中的最大值相加,然后减去所有乘以 3 的最大值,因为在 4 种组合中,3 将是所有组合中最大值的结果。
查看demo .
结果:
| high | low |
| ---- | --- |
| 6 | 4 |
关于mysql - 使用 GREATEST() 方法选择第二大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57172585/