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

MySqlの各列の上位N個の値を取得する方法

    これは、単一のクエリで実行したいことではありません。列ごとに1つのクエリを実行します。適切な状況(適切なインデックスと適切な列タイプ)では、MySQLは実際に短絡によってこれらのクエリを最適化できるため、テーブル全体をスキャンする必要はなく、上位5つの値を取得して完了します。

    >
    SELECT column1 FROM table ORDER BY column1 DESC LIMIT 5
    SELECT column2 FROM table ORDER BY column2 DESC LIMIT 5
    etc
    

    それらすべてを1つの巨大でぎこちないクエリにまとめようとすると、オプティマイザにテーブル全体をあきらめて50回再スキャンし、50個の一時テーブルとおそらくファイルの並べ替えを適切に使用するように説得することができます。したがって、テーブルに約10行が含まれていない限り(明らかにそうではありません)、50の個別のクエリが常に高速になります。



    1. NULL列(0,3)による数値オーバーフロー

    2. OracleのUTL_FILEパッケージを使用したExcelSheetでの書き込み

    3. 行内の重複する値を比較するにはどうすればよいですか?

    4. MySQLエラー:認証プラグイン'caching_sha2_password'をロードできません