sql >> データベース >  >> RDS >> Mysql

Mysqlを使用して中央値を計算する

    より速い方法を提案します。

    行数を取得する:

    SELECT CEIL(COUNT(*)/2) FROM data;

    次に、ソートされたサブクエリで中央の値を取得します:

    SELECT max(val) FROM (SELECT val FROM data ORDER BY val limit @middlevalue) x;

    これをランダムな数値の5x10e6データセットでテストしたところ、10秒以内に中央値が見つかりました。

    これにより、COUNT(*)/2を置き換えることにより、任意のパーセンタイルが検出されます。 COUNT(*)*nを使用 ここで、n はパーセンタイルです(中央値の場合は.5、75パーセンタイルの場合は.75など)。



    1. SQLでの整数としての出力の選択/キャスト

    2. PDOプリペアドステートメントを使用して、識別子(テーブル名またはフィールド名)または構文キーワードをバインドできますか?

    3. Oracle-文字列のカンマ区切りを分割します(文字列にはスペースと連続したカンマが含まれます)

    4. MySQLの命名規則はありますか?