0

行のグループ化に問題があります。

例の表

ID, GroupID, INFO, COUNTER
1, 123456, INFO, 21
2, 654321, INFO, 20
3, 123456, INFO, 30
4, 654321, INFO, 11

まず第一に、私はこれでそれらを表示したいと思います:

SELECT * 
FROM table 
GROUP BY GroupID 
ORDER BY COUNTER DESC 
LIMIT 0, 60

したがって、グループ タイプの 1 つだけを表示する必要があります。ありますが、順序が良くありません。counterそのため、 とペアになっているのが適切な数になっていないと思いますGroupID

正しい表示結果は次のようになります: (メインの注文セレクターは である必要がありますcount)

ID, GroupID, INFO, COUNTER
3, 123456, INFO, 30
2, 654321, INFO, 20

どのように解決すればよいですか?

4

1 に答える 1

1
    SELECT tablename.* FROM tablename 
    WHERE tablename.COUNTER = 
(SELECT MAX(COUNTER) FROM tablename AS f WHERE f.GroupID = tablename.GroupID) 
    ORDER BY tablename.COUNTER DESC 

編集済み :これにより、各 GroupID の COUNTER の最大値を含む完全な行が取得され、最終結果が COUNTER desc で並べ替えられます。

于 2013-03-07T22:20:24.840 に答える