SQL での別の列の各値の最も一般的な値の検索
表形式のデータを扱う場合、多くの場合、特定の列で最も頻繁に発生する値。 SQL のコンテキストでは、これはさまざまな方法を使用して実現できます。
従来のアプローチ:
一般的なアプローチの 1 つは、次のような一連の中間ステップを利用することです。質問で実証されました。これには、出現回数をカウントし、最大値を識別し、結果を適切にグループ化するための一時テーブルを作成することが含まれます。このメソッドは機能しますが、煩雑でエラーが発生しやすい可能性があります。
エレガントなソリューション:
PostgreSQL 9.4 以降などの最新バージョンの SQL では、簡略化された SQL が提供されます。このタスクの解決策。 mode() 関数は、指定されたグループ内で最も一般的な値を返します。これにより、複雑な集計と操作の必要がなくなります。
例:
次の表を考えてみましょう:
Column | Type | Modifiers |
---|---|---|
country | text | |
food_id | int | |
eaten | date |
次のような食品を見つけるには各国で最も頻繁に食べられているものを調べるには、次のクエリを使用できます:
select mode() within group (order by food_id) from munch group by country
このクエリ各国のモードを直接返し、より簡単で効率的なアプローチを提供します。
以上がSQL を使用して、ある列の各一意の値に対して、ある列の最も頻度の高い値を効率的に見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。