2013-02-22 69 views
-2

尋找一種按三種條件排序的方法。我可以解決其中兩個問題。示例表:三列排序表

Buyer Qty Item_ID 
James 1 12345 
Jack 1 34564 
John 3 13445 
Kevin 1 83243 
Bill 2 23434 
Jack 3 23423 

所以這裏的技巧就是集團採購第一,
那麼數量 然後ITEM_ID

傑克有兩個命令需要進行分組,然後拉,一起運 的其餘部分訂單需要由數量然後ITEM_ID

分類分組的輸出會是這樣:

Buyer Qty Item_ID 
Jack 1 34564 
Jack 3 23423 
James 1 12345 
Kevin 1 83243 
Bill 2 23434 
Bob 2 23444 
John 3 13445 

買家不需要按多個訂單進行排序 按qty,item_id排序分開的訂單。我們每天都會收到100個訂單,來自同一個買方的訂單。需要通過item_id對具有相同數量項目的訂單進行排序,以簡化從房間的一端到另一端的庫存。看來,將買家分組將會奏效,但還沒有弄清楚。

最合理查詢至今:

select * FROM orders 
    WHERE printed = 0 
    AND status = 'completed' 
    AND address_name <> '' 
    group by buyer 
    ORDER BY qty, id; 

這個查詢從同一個買家跳過多個訂單,並給出了其餘的排序正確。

我已經實施了成功的答案1謝謝!

+2

你有沒有查詢你試圖做到這一點? – 2013-02-22 02:18:26

+0

我是否錯誤地認爲你只需要買方訂單,數量,item_ID'不是「group by」?看到預期的產出也會很有用 – xQbert 2013-02-22 02:27:44

+0

我希望你能得到你的第一個問題的答案。所以,你會接受它的答案。如果您還有其他問題,最好在沒有詳細說明現有問題的情況下創建一個新問題。這不僅僅是你從這個問題和答案中受益。所以保持這種格式,然後其他人可以利用該線程。順便說一句,錯誤是自我解釋。您的paypal_ipn_orders表中沒有item_number列(確認它可能是item_id) – chandimak 2013-02-23 06:13:32

回答

1

以下查詢將爲您提供所需的確切結果。在內部查詢中,它生成相同買方實例的計數。然後它將與買方專欄中的原始表格一起加入。然後按照降序相同的買方實例和其他列升序的數量對其進行排序。

SELECT table1.buyer, qty, item_id 
FROM orders table1, 
    (SELECT buyer, COUNT(*) as count FROM orders GROUP BY buyer) as table2 
    WHERE table1.buyer = table2.buyer 
    ORDER BY count DESC, qty, item_id; 

請參考這個fiddle