ホームページ > データベース > mysql チュートリアル > SQL を使用して、ある列の各一意の値に対して、ある列の最も頻度の高い値を効率的に見つけるにはどうすればよいですか?

SQL を使用して、ある列の各一意の値に対して、ある列の最も頻度の高い値を効率的に見つけるにはどうすればよいですか?

DDD
リリース: 2025-01-03 02:13:43
オリジナル
181 人が閲覧しました

How Can I Efficiently Find the Most Frequent Value in One Column for Each Unique Value in Another Column Using SQL?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート