【发布时间】:2016-06-22 15:19:51
【问题描述】:
这里的问题是:我有一个看起来像这样的表(简化)
+------+------+------+
| res | loc | rent |
+------+------+------+
| WEB | WP | 100 |
| WEB | VA | 300 |
| VR | WP | 500 |
| VR | VA | 200 |
| VR | VA | 600 |
| CS | WP | 400 |
| CS | WP | 90 |
+------+------+------+
我可以使用 SELECT res, loc, SUM(rent) FROM testTable GROUP BY res, loc 使表格看起来像这样;
+------+------+-----------+
| res | loc | SUM(rent) |
+------+------+-----------+
| CS | WP | 490 |
| VR | VA | 800 |
| VR | WP | 500 |
| WEB | VA | 300 |
| WEB | WP | 100 |
+------+------+-----------+
我想从这里首先订购带有 VR 的桌子(因为它的 TOTAL 租金最大),然后是 CS ,然后是 WEB 但我也想保留组顺序,所以它看起来像这样
+------+------+-----------+
| 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),并且 loc VA 在 VR 组中排在 WP 之前,因为 800 > 500。
这可能是我的梦想太大了吗?
【问题讨论】:
标签: mysql group-by sql-order-by