繁体   English   中英

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

[英]Sort fields in MySQL table by sum of the columns

我在一个表中有数据,其中的字段包含个人名称,行包含与他们对某项任务的贡献有关的数据。 例如:

在此处输入图片说明

第1个人的总和为13,而第2个人的总和为25。我希望结果以第2个人,第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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM