SQL-Abfrage: Suchen Sie das Element mit der höchsten Häufigkeit
P粉903969231
P粉903969231 2023-09-12 10:36:13
0
1
541

Ich versuche, eine SQL-Abfrage zu schreiben, um den Modus zu finden, d. h. das Element, das häufiger vorkommt als andere Elemente. Zum Beispiel:

2,2,1,1---->在这里,输出应该为空(1和2都出现了两次)

    3,3,3----->在这里,输出也应该为空(没有第二个元素)

    3,3,1----->在这里,输出应该是3。(3的出现次数大于1的出现次数)

Hier sind die 3 Bedingungen, die verwendet werden, um es zu finden. Wie kann ich es umsetzen?

P粉903969231
P粉903969231

Antworte allen(1)
P粉162773626

您可以计算值的数量,找出频率最高的值,并且还可以根据值的数量进行筛选:

select x.*
from (select val,
             count(*) as cnt,
             row_number() over (order by count(*) desc ) as seqnum,
             count(*) over () as num_vals
             count(*) over (partition by count(*)) as cnt_cnt
      from table 
      group by val
     ) x
where cnt_cnt = 1 and seqnum = 1 and num_vals > 1;

实际上,您可以使用having子句和order by来实现:

select val
from (select val, count(*) as cnt,
             count(*) over () as num_values
      from table 
      group by val
     ) v
where num_values > 1
order by cnt desc;
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!