そのクラスの中で最も人気のあるアイテムによって注文された一意の「クラス」のリストを返すクエリを書く必要があります。次のクエリの例を示します。GROUP BY&ORDER BY - 特定のフィールドで注文する
このクエリは正しいクラスを返しますが、返されるアイテムは最も一般的なものではなく表に最初に表示されます。
は同様に私が試してみました:
SELECT MAX(items.title), items.popularity
FROM items, classes
WHERE class_id = classes.id
GROUP BY class_id
ORDER BY MAX(items.popularity) DESC
そして、すべてのバリエーション - これはただの追加、最新かつ最も人気のあるではないが返されます。
私は単純な答えがあると確信しています、助けてください!
'ORDER BY MAX(items.popularity)DESC'は私にも意味をなさない... ORDER BYは列で並べ替えるべきであり、MAXはその列から単一の値を返します。一番上の「人気」が最も高いアイテムを手に入れるためには、「ORDER BY人気DESC」ではないでしょうか? – FrustratedWithFormsDesigner
GROUP BYを使用すると、人気を無視してグループに向かう最も古いレコードをすべて選択するようです。 MAX関数を使用することは、多くの同様の質問に対する答えでした。 – Lisa
通常、GROUP BYは、MAX、MIN、AVG、COUNTなどの分析を行うときに使用されます。通常、GROUP BYを使用して多数のレコードを1つまたは2つのレコードに集約/集約するため、 。私はあなたがその声明の意味を理解していないことを認めていますが、ORDER BYとGROUP BYの混乱を招くかもしれません。 – FrustratedWithFormsDesigner