Rumah > Soal Jawab > teks badan
Saya cuba menulis pertanyaan SQL untuk mencari mod, iaitu elemen yang berlaku lebih banyak kali daripada elemen lain. Contohnya:
2,2,1,1---->在这里,输出应该为空(1和2都出现了两次) 3,3,3----->在这里,输出也应该为空(没有第二个元素) 3,3,1----->在这里,输出应该是3。(3的出现次数大于1的出现次数)
Berikut adalah 3 syarat yang digunakan untuk mencarinya. Bagaimanakah saya boleh melaksanakannya?
P粉1627736262023-09-13 00:50:40
Anda boleh mengira bilangan nilai, mencari nilai yang paling kerap, dan juga menapis berdasarkan bilangan nilai:
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;
Sebenarnya, anda boleh menggunakan having
子句和order by
untuk mencapai:
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;