Mysql 将最后一行分组为一个求和值

Mysql 将最后一行分组为一个求和值,mysql,Mysql,我有一张mysql表: date | client | total 2015-01-01 | john | 85.00 2015-01-01 | alfred | 35.00 2015-01-01 | georgy | 125.00 2015-01-01 | linda | 42.00 2015-01-01 | alex | 76.00 2015-01-01 | john | 94.00 2015-01-01 | john | 75.30 我想按客户名称分组,计算

我有一张mysql表:

date       | client | total
2015-01-01 | john   | 85.00
2015-01-01 | alfred | 35.00
2015-01-01 | georgy | 125.00
2015-01-01 | linda  | 42.00
2015-01-01 | alex   | 76.00
2015-01-01 | john   | 94.00
2015-01-01 | john   | 75.30
我想按客户名称分组,计算总金额和百分比,因此我进行了以下查询:

SELECT client, total, round(total*100/t.th,1) as percent 
FROM ( 
SELECT client, sum(total) as total 
FROM mytable 
WHERE date='2015-01-01' 
GROUP BY `client`) c 
JOIN ( select sum(total) as th from mytable 
WHERE date='2015-01-01') t 
order by percent desc
获得这一结果非常有效:

client | total | percent
john   | 254.3 | 47.8
georgy | 125   | 23.5
alex   | 76    | 14.3
linda  | 42    | 7.9
alfred | 35    | 6.6
但我不知道是否有可能将最后几行相加,并在一行中分组,得到这样的结果,例如:

client | total | percent
john   | 254.3 | 47.8
georgy | 125   | 23.5
others | 135   | 28.8
我想知道如何修改查询以获得此结果


我需要一些帮助。

你的标准是什么?你想要的是两个最高的总数,然后是“其他”,还是其他?@LightnessRacesinOrbit是的,就像这个例子,或者如果我有更多的行,显示一些第一行,然后是“其他”。是的,完全可能正确,但我想说的是,定义“一些第一行”。你不能告诉计算机“第一排”,你必须准确地告诉它该做什么。它总是前两行,还是其他什么?@LightnessRacesinOrbit当然我会定义行数,在示例中是前两行。