连续找到最低数字组,而不仅仅是最低数字

时间:2011-11-11 06:48:00

标签: mysql database

我知道如何在给定10列的表格行中找到最小或最大的数字

greatest(a, b, c, d, etc).........least(a, b, c, d, etc).....

但我想要做的是连续找到3个最小或最大的列,而不仅仅是单个最小或最大的列。您会看到,每列代表某个catergory中用户的排名。然后根据所有十个中排名最高的三个catergories来确定整体排名。

这可以在不必将列变成行的情况下完成,因为尽管事实上它需要相当多的额外代码,但它还有其自身的复杂性。

1 个答案:

答案 0 :(得分:2)

SELECT `src`, `value`
FROM
(
    SELECT 'a' AS `src`, a AS `value` FROM yourtable WHERE id = 42
    UNION ALL
    SELECT 'b' AS `src`, b AS `value` FROM yourtable WHERE id = 42
    UNION ALL
    -- etc...
    UNION ALL
    SELECT 'j' AS `src`, j AS `value` FROM yourtable WHERE id = 42
) T1
ORDER BY `value`
LIMIT 3