中央値は、データセット全体を並べ替えたり、データセットのサイズにも比例する深さの再帰を使用したりするため、一般的なケースでは計算がやや難しいです。これが、多くのデータベースにすぐに使用できる中央値演算子がない理由かもしれません(MySQLにも中央値演算子がありません)。
中央値を計算する最も簡単な方法は、これら2つのステートメントを使用することです(中央値を計算する属性がa
と呼ばれると仮定します)。 コレクション内のすべてのドキュメントcoll
に適用する必要があります ):
count = db.coll.count();
db.coll.find().sort( {"a":1} ).skip(count / 2 - 1).limit(1);
これは、人々がMySQLに提案するものと同等です。