は、Oracleのための答えです:
select *
from mytable
where category = (select stats_mode(category) from mytable);
これはあなたに1つのカテゴリを取得します。だから、ネクタイの場合は、任意に最大数を持つカテゴリの1つを取得します。
そして、ここでは、DBMSはSTATS_MODE
をサポートするが、標準SQLウィンドウの機能を搭載しないための答えです:RANK
で
select name, category
from
(
select name, category, rank() over (order by cnt desc) as rnk
from
(
select name, category, count(*) over (partition by category) as cnt
from mytable
) counted
) ranked
where rnk = 1;
あなたが最大カウントを持つすべてのカテゴリを取得します。同調の際にそれらの1つだけが必要な場合は、ORDER BY
にcategory
を追加してください。 (おかげで修正のためdnoethします。)
がどのDBMSの場合は、あなたが答えをしたいですか? –
postgresデータベースの場合。 –
さて、私の答えの2番目の部分を使ってください。 –