首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >mySQL按双群之和排序,保留群

mySQL按双群之和排序,保留群
EN

Stack Overflow用户
提问于 2016-06-22 15:19:51
回答 2查看 38关注 0票数 1

问题是:我有一张桌子看起来像这样(简化)

代码语言:javascript
运行
复制
+------+------+------+
| res  | loc  | rent |
+------+------+------+
| WEB  | WP   |  100 |
| WEB  | VA   |  300 |
| VR   | WP   |  500 |
| VR   | VA   |  200 |
| VR   | VA   |  600 | 
| CS   | WP   |  400 | 
| CS   | WP   |   90 |
+------+------+------+

我可以让表格看起来像这样,选择res,loc,SUM(租金)从testTable组由res,loc;

代码语言:javascript
运行
复制
+------+------+-----------+
| res  | loc  | SUM(rent) |
+------+------+-----------+
| CS   | WP   |       490 |
| VR   | VA   |       800 |
| VR   | WP   |       500 |
| WEB  | VA   |       300 |
| WEB  | WP   |       100 |
+------+------+-----------+

从这里开始,我想要的是先订购带有VR的桌子(因为它的总租金是最大的),然后是CS,然后是WEB,但我也希望保留组顺序,这样看起来就像这样

代码语言:javascript
运行
复制
+------+------+-----------+
| res  | loc  | SUM(rent) |
+------+------+-----------+
| VR   | VA   |       800 |
| VR   | WP   |       500 |
| CS   | WP   |       490 |
| WEB  | VA   |       300 |
| WEB  | WP   |       100 |
+------+------+-----------+

这样,它们的总和租金按地点分组,然后按最大租金总额排序,然后在租金总额内按租金排序。VR组主要病因为(800 + 500) > 490 > (300 + 100),而左室VA高于WP ( 800±500 )。

这有可能是我的梦想太大了吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-22 16:18:18

您需要在子查询中单独计算res值的总计,如下所示:

代码语言:javascript
运行
复制
SELECT t.res, t.loc, SUM(t.rent) AS reslocRent
FROM table AS t
INNER JOIN (
   SELECT res, SUM(rent) AS resRent
   FROM table
   GROUP BY res
) AS subQ ON t.res = subQ.res
GROUP BY t.res, t.loc
ORDER BY subQ.resRent DESC, reslocRent DESC
票数 0
EN

Stack Overflow用户

发布于 2016-06-22 15:23:20

您所需要的似乎是按降序计算ORDER BYrent之和:

代码语言:javascript
运行
复制
SELECT res, loc, SUM(rent) 
FROM testTable 
GROUP BY res, loc
ORDER BY SUM(rent) DESC
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37972189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档