Rumah >pangkalan data >tutorial mysql >Bagaimana Mengira Kejadian Berturut-turut Nilai dalam Jadual SQL?
Nilai Pengelompokan berdasarkan Kejadian Berturut-turut
Untuk mengira kejadian berturut-turut bagi nilai dalam jadual, pendekatan yang berkesan ialah mengira perbezaan baris nombor.
Pertimbangkan perkara berikut pertanyaan:
select name, count(*) from ( select t.*, (row_number() over (order by id) - row_number() over (partition by name order by id) ) as grp from t ) t group by grp, name;
Subkueri ini menjana dua nombor baris untuk setiap baris:
Dengan menolak dua nombor baris, kami mencipta pengecam "kumpulan" (grp) yang bertambah apabila nama bertukar atau terdapat kejadian berturut-turut yang berbeza dengan nama yang sama.
Pertanyaan terakhir kemudian mengumpulkan baris berdasarkan grp ini dan mengira kejadian setiap nama dalam setiap kumpulan. Ini menghasilkan kiraan kejadian berturut-turut yang diingini:
+------+------------+ | Name | Repetition | +------+------------+ | A | 2 | | B | 4 | | C | 1 | | B | 2 | +------+------------+
Pendekatan ini menyediakan cara yang cekap untuk mengenal pasti nilai berturut-turut dalam jadual dengan memanfaatkan perbezaan dalam nombor baris sebagai mekanisme pengumpulan.
Atas ialah kandungan terperinci Bagaimana Mengira Kejadian Berturut-turut Nilai dalam Jadual SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!