2012-04-03 42 views
0

是否可以按總數組中的條件對返回行進行排序?根據組總和標準排序

例如,我的數據是:

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,我想有以下結果(汽車,然後再大橋,然後藝術):

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 

在另一方面,我謹criter添加其他訂單ia(在示例中,「產品」標準)。 我已經嘗試了很多使用ORDER BY和GROUP BY的東西,但它總是彙總我的結果。

感謝您的幫助!

+2

爲什麼你要車 - >藝術 - >橋樑順序? – hjpotter92 2012-04-03 18:38:57

+1

你用什麼來確定類別的順序?你有車,然後藝術然後橋樑,但不是由你的總和排序,因爲藝術是在汽車和橋樑之間​​。 – Taryn 2012-04-03 18:39:51

+0

我在訂單上犯了一個錯誤。它是Sum(Car)> Sum(Bridge)> Sum(Art) – iwalktheline 2012-04-04 08:51:55

回答

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. 責令原表由那些小計
+0

+1 OP希望'order by r.total DESC,...'但這只是細節。 – 2012-04-03 18:52:10

+0

+1我認爲在內部連接的查詢中按類別分組可能也是必要的。 – 2012-04-03 18:57:10

+0

@edalorzo是的!謝謝! – 2012-04-03 18:58:32