按组和标准排序

时间:2012-04-03 18:35:25

标签: mysql sql group-by

是否可以在总和组上订购带有条件的退货行?

例如,我的数据是:

Id     Price     Product     Category
1      12        Book1       Car
2      1         Book2       Art
3      8         Book3       Car
4      7         Book4       Art
5      11        Book5       Car
6      24        Book6       Bridge

由于汽车书籍的总和为31 艺术书籍的总和为8 桥书的总和为24 ,I我希望得到以下结果(Car first,然后是Bridge,然后是Art):

Id     Price     Product     Category
1      12        Book1       Car
3      8         Book3       Car
5      11        Book5       Car
6      24        Book6       Bridge
2      1         Book2       Art
4      7         Book4       Art

另一方面,我想按标准添加其他订单(在示例中,“产品”标准)。 我使用ORDER BY和GROUP BY尝试了很多东西,但它总是聚合我的结果。

感谢您的帮助!

1 个答案:

答案 0 :(得分:6)

你可以这样做:

select 
  l.* from table l
inner join (
  select category, sum(price) as total from table group by category
) r
on l.category = r.category
order by r.total, <some_other_column>

这是我遵循的程序:

  1. 找到小计
  2. 将原始表格加入小计
  3. 按原则表
  4. 订购原始表格