1

私が遭遇したランキングクエリについて、何らかの説明を得たいと思っています。私は注文したいポイントフィールドを持っている同様のセットアップを持っていますが、このクエリを一生理解することはできません: http://www.artfulsoftware.com/infotree/queries.php#460

結合が実際に何をしているのか理解できません。また、group by ステートメントを含めないと、完全にごちゃ混ぜで不正確なレコードが 1 つしか得られないのはなぜですか。Group Byステートメントが結果の数を制限していると常に見ていますが、このクエリはそれらを最終的な結果セットに追加しているようです(group byがないと、1行が返されます)

4

1 に答える 1

1

クエリは基本的にこれを行っています:

元の投票テーブルの各行について、(同じテーブル内で) その行に対して <= の投票がある行の数を数えます。カウントはランクと同じです。

JOIN は、投票テーブルを投票テーブルの個々の行にリンクするために必要です。

GROUP BY は、選択リストに COUNT() がある場合に必要です。各人について、クエリは、各人の投票数が <= であることがわかった行の数をカウントしています。COUNT を使用した GROUP BY は、元の投票テーブルの乗算である JOIN 結果の結果の数を制限しています。

于 2012-04-17T15:45:35.790 に答える