我在考慮如何編寫此查詢。我認爲這可能涉及在ORDER BY聲明中有一個CASE,但我可以使用一些指導。帶CASE聲明的特殊ORDER BY - 需要指導
我有兩列數據; ID和價格。當我訂購價格ASC時,我的查詢結果顯示如下:
ID |價格
3 | 150
1 | 200
3 | 205
2 | 210
2 | 230
3 | 270
1 | 300
2 | 340
3 | 500
我在做的是仍然按照價格ASC訂購,但有輕微的變化。我也想按ID進行分組。例如,我希望查詢找到所有結果的最低價格,然後查找具有相同ID的所有其他記錄(以價格ASC順序列出)。一旦找到該ID的所有記錄,查詢就會查找所有其他剩餘記錄,再次查找最低價格,然後重複。所以每次經過這個循環時結果都會減少。對於上述示例,結果將爲:
ID |價格
3 | 150
3 | 205
3 | 270
3 | 500
1 | 200
1 | 300
2 | 210
2 | 230
2 | 340
循環是一樣的東西找到最低的價格,發現所有記錄在價格順序相同的ID和列表中,找到其餘結果的最低價格,找到在價格順序相同的ID和列表中的所有記錄,重複...
任何想法?如果我沒有解釋得很好,請告訴我。
你需要做這樣的事情,ORDER BY,然後順序/臨時表,按照最低價格對ID進行排序,並生成一個列,從1到N排列它們。然後,您可以將行的ID與該子查詢/臨時表的索引關聯起來,給你你想要的訂單。然後,您可以進行二級訂購(按x,y的順序)以按價格進行訂購。 – Patashu 2013-03-05 01:11:16