ホームページ >データベース >mysql チュートリアル >SQL で国ごとに最も頻繁に使用される食品 ID を見つけるにはどうすればよいですか?
SQL で別の列の値を指定して列に最も一般的な値を見つける
テーブルに複数の列が含まれるシナリオでは、次のようなものがあります。 「country」、「food_id」、「eat」の一般的なタスクは、1 つの列で最も頻繁に発生する値を決定することです。
質問で述べたように、1 つのアプローチには、一時テーブルを作成し、複数のサブクエリを実行してカウントを計算し、最大カウントを見つけることが含まれます。を実行し、対応する「food_id」値を取得します。このメソッドは機能しますが、面倒に思えるかもしれません。
幸いなことに、PostgreSQL 9.4 では、より簡単な解決策である mode() 関数が導入されました。この関数は、グループ化式で定義された各グループ内の指定された列の最も一般的な値を見つける効率的な方法を提供します。
このタスクに mode() 関数を使用するには、次の SQL クエリを使用できます。
SELECT mode() within group (order by food_id) FROM munch GROUP BY country
このクエリは、mode() 関数を利用して、一意の「country」値ごとに最も一般的な「food_id」値を計算します。 WITHIN GROUP (ORDER BY food_id) 句を使用すると、mode() 関数が各国グループ内の「food_id」列で動作し、モードを識別する前に値を昇順でランク付けします。
このクエリの結果提供された回答にも示されているように、「国」とそれに対応する最も一般的な「food_id」値を表示するテーブルになります:
country | mode -------------- GB | 3 US | 1
以上がSQL で国ごとに最も頻繁に使用される食品 ID を見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。