2011-06-28 24 views
6

ご注文の際に、各グループの特定の商品を注文するための、効率的な注文方法です。ご注文の場合グループ別

//This is the best way i have come up with. 
SELECT D.* 
FROM (
    SELECT * 
    FROM devices 
    ORDER BY time 
) AS D 
GROUP BY D.location 
+0

を働い必要がlocation'によってデバイスグループから選択* 'よりも、この方が効率的ですか? – Jaydee

+0

ここに問題があります。たくさんのレポートを収めたテーブルがあるとします。各場所にはXレポートがあります。しかし、最新のレポートだけが必要です。この100%の時間を達成するには、THENグループごとに時間順に注文する必要があります。 – Michael

+0

GROUP BYの操作を誤解している可能性があります。この記事を見てください(これはあなたに古いニュースなら謝罪します)。http://rpbouman.blogspot.com/2007/05/debunking-group-by-myths.html – Jaydee

答えて

1
SELECT * 
FROM devices 
GROUP BY D.location 
ORDER BY time --ASC or DESC default is ASC i believe 

サブ照会

+0

それはエラーです。あなたはそのようなステートメントでグループの前にステートメントで注文を行うことはできません。そして、はい、私は100アイテムを持っていたかどうかを確認するように頼んだ場合、おそらく1で始まり、100から始めてカウントダウンするのではなく100に行くように、ASCはデフォルトです。 – Michael

+0

@Michael、私はそれを切り替えました – Neal

+0

これはORDER BYまたはGROUP BYを実行しますか? – Michael

2

のためにこれは私のため

SELECT * 
FROM (SELECT * 
     FROM col 
     ORDER BY col DESC,date DESC)a 
GROUP BY col 
+0

残念なことに、私は覚えていないことを見て以来、それはずっと長い! :)しかし、答えに感謝! – Michael

+0

LOL :) ...知っていますが、他の人が同じ問題を抱えている可能性があり、2番目の解決策を投稿することに傷つくことはありません。 –

関連する問題