我在表格中有数据,其中包含个人姓名的字段,以及包含与其对某个任务的贡献相关的数据的行。例如:
人1的总和是13,而人2的总和是25.我希望结果在人2,人1的顺序中显示列。
我希望对查询结果进行排序,以按每个人的总和(列总和)的顺序重新排列表字段(人名)
答案 0 :(得分:-1)
您可以使用GREATEST
和LEAST
函数重新排序值。并且您可以计算子查询中每个原始列的总和。
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