通过列的总和对MySQL表中的字段进行排序

时间:2016-04-23 05:27:34

标签: mysql

我在表格中有数据,其中包含个人姓名的字段,以及包含与其对某个任务的贡献相关的数据的行。例如:

enter image description here

人1的总和是13,而人2的总和是25.我希望结果在人2,人1的顺序中显示列。

我希望对查询结果进行排序,以按每个人的总和(列总和)的顺序重新排列表字段(人名)

1 个答案:

答案 0 :(得分:-1)

您可以使用GREATESTLEAST函数重新排序值。并且您可以计算子查询中每个原始列的总和。

SELECT IF(GREATEST(sum1, sum2) = sum1, 'Person1', 'Person2') as HigherName,
       GREATEST(sum1, sum2) as val1 AS HigherVal,
       IF(LEAST(sum1, sum2) = sum1, 'Person1', 'Person2') AS LowerName,
       LEAST(sum1, sum2) as LowerVal
FROM (SELECT SUM(Person1) AS sum1, SUM(Person2) AS sum2
      FROM YourTable) AS x

这将产生如下结果:

HigherName  HigherVal   LowerName   LowerVal
Person2     25          Person1     13