MYSQL ile bir tablodaki birden fazla olan eş kayıtların sorgulanması
MYSQL ile bir tablodaki eş kayıtların sayı adetini bulan SQL sorgulanması
İlk önce tablomuzu oluşturalım.
CREATE TABLE IF NOT EXISTS `musteri_tablo` ( `musteri_id` INT(11) NOT NULL, `musteri_ismi` VARCHAR(75) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Oluşturulan tablonun içine hayali kayıtlar yerleştirelim.
INSERT INTO `bilgisayar`.`musteri_tablo` (`musteri_id`, `musteri_ismi`) VALUES (NULL, 'Ahmet'), (NULL, 'Ahmet'), (NULL, 'Ali'), (NULL, 'Can'), (NULL, 'Hakan'), (NULL, 'Hakan'), (NULL, 'Süleyman'), (NULL, 'Murat'), (NULL, 'Ahmet'), (NULL, 'Mustafa'), (NULL, 'Ahmet'), (NULL, 'Mehmet');
Aşağıdaki örneklerde de görüldügü üzere, bir kayıtın birden fazla kopyasının sayı adedini bulmak için HAVING ifadesini kullaniyoruz. HAVING ile ilgili detaylı bilgiyi buradan edinebilirsiniz.
// HAVING count(musteri_ismi) > 1 , 1'den fazla olan eş kayıtlarının adedini bul. SELECT musteri_ismi,COUNT(*) as es_kayit from musteri_tablo GROUP BY musteri_ismi HAVING count(musteri_ismi) > 1 // HAVING count(musteri_ismi) >3 , 3'ten fazla olan eş kayıtları adedini bul. SELECT musteri_ismi,COUNT(*) as es_kayit from musteri_tablo GROUP BY musteri_ismi HAVING count(musteri_ismi) > 3 // Adedi 3 ile 5 arasında olan müşteri isimlerinin adedini bul. SELECT musteri_ismi,COUNT(*) as es_kayit from musteri_tablo GROUP BY musteri_ismi HAVING count(musteri_ismi) > 3 AND count(musteri_ismi) < 5