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

最も頻繁な値のSQLを取得する方法

    分布で「最も頻繁に発生する値」は、技術的な名前を持つ統計の明確な概念です。これは、ディストリビューションのモードと呼ばれます。また、OracleにはSTATS_MODE()があります。 そのための機能。 https://docs.oracle.com/cd/B19306_01 /server.102/b14200/functions154.htm

    たとえば、EMPを使用します 標準のSCOTTのテーブル スキーマ、select stats_mode(deptno) from scott.emp 30を返します -従業員が最も多い部門の数。 (30は部門の「名前」または番号であり、その部門の従業員の数ではありません!)

    あなたの場合:

    select stats_mode(h.name) from (the rest of your query)
    

    :2つ以上のホテルが「最も頻繁」に関連付けられている場合、STATS_MODE() それらの1つを返します(非決定論的)。すべての関連付けられた値が必要な場合は、別のソリューションが必要になります。良い例は、ドキュメント(上記のリンク)にあります。これは、オラクルの統計的概念の理解と実装における文書化された欠陥です。



    1. 本番用のSQLExpress?

    2. MySQL IFNULL()の説明

    3. 生のバイトを生のバイトとしてRにインポートする

    4. SQL-最も類似した製品の選択