Az adatok redundanciája sok okból következik be. Számos olyan bonyolult feladat, amellyel az adatbázis-rendszerek használata közben meg kell birkóznia, megpróbálja megismételni az ismétlődő értékeket. Erre a célra a COUNT () összesítési módszert fogjuk használni. A COUNT () metódus egy adott táblázatban található sorok összegét adja vissza. A COUNT () függvény lehetővé teszi az összes, vagy csak a megadott feltételnek megfelelő sor összesítését. Ebben az útmutatóban megtudhatja, hogyan lehet azonosítani egy vagy több MySQL oszlop duplikált értékeit a COUNT () használatával. A COUNT () metódusnak a következő három típusa van:
- SZÁMOL(*)
- COUNT (kifejezés)
- COUNT (DISTINCT kifejezés)
Győződjön meg róla, hogy a MySQL telepítve van a rendszerére. Nyissa meg a MySQL parancssori ügyfélhéjat, és a folytatáshoz írja be jelszavát. Megnézünk néhány példát az egyező értékek számlálására a COUNT () módszerrel.
Van egy "social" tábla az "adat" sémánkban. Ellenőrizzük a rekordját a következő lekérdezéssel.
>> SELECT * FROM adatok.társadalmi;
MySQL COUNT (*)
A COUNT (*) metódus a táblázatban található sorok számának vagy az adott feltételnek megfelelő sorok számolására szolgál. A táblák sorainak teljes számának ellenőrzéséhez a „közösségi” kifejezéssel próbálkozzon az alábbi lekérdezéssel. Összesen 15 sor található a táblázatban az eredmény szerint.
>> SELECT COUNT (*) FROM adatokból.társadalmi;
Vessen egy pillantást a COUNT (*) módszerre, miközben meghatároz néhány feltételt. Be kell szereznünk a sorok számát, ahol a felhasználónév megegyezik a 'Mustafa' névvel. Láthatja, hogy csak 4 rekordunk van ehhez a névhez.
>> SELECT COUNT (*) FROM adatokból.social WHERE Felhasználó = 'Mustafa';
Azon sorok teljes összegének lekéréséhez, ahol a felhasználók webhelye „Instagram”, próbálkozzon az alább megadott lekérdezéssel. A „social” táblázatnak csak 4 rekordja van az „Instagram” weboldalról.
>> SELECT COUNT (*) FROM adatokból.közösségi WHERE Webhely = 'Instagram';
Azon sorok teljes számának lekérése, amelyeknél az „életkor” 18-nál nagyobb, a következő:
>> SELECT COUNT (*) FROM adatokból.társadalmi WHERE Életkor> 18;
Hívjuk le a „Felhasználó” és a „Webhely” oszlopok adatait egy táblázatból, ahol a Felhasználónév „M” ábécével kezdődik. Próbálja ki az alábbi utasítást a héjon.
>> SELECT felhasználó, webhely FROM adatok.social WHERE Felhasználó, mint az 'M%';
MySQL COUNT (kifejezés)
A MySQL-ben a COUNT (kifejezés) metódust csak akkor használják, ha a 'kifejezés' oszlop nem null értékeit szeretné megszámolni. A „kifejezés” bármely oszlop neve lenne. Vegyünk egy egyszerű példát rá. Csak a „Webhely” oszlop nem null értékeit számoltuk, amely a „Kor” oszlophoz kapcsolódik, amelynek értéke „25”. Lát! Csak 4 nem null rekord áll rendelkezésünkre a „25” életkorú felhasználók számára, akik weboldalakat használnak.
>> SELECT COUNT (Webhely) FROM adatokból.társadalmi WHERE Kor = 25;
MySQL COUNT (DISTNCT kifejezés)
A MySQL-ben a COUNT (DISTINCT kifejezés) metódust használják a Null értékek és a 'kifejezés' oszlop különálló értékeinek összegzésére. Az „Age” oszlopban különálló számú, nem null értékek számlálásához az alábbi lekérdezést használtuk. A „social” táblából az „Age” oszlop 6 nem null és külön rekordját találja. Ez azt jelenti, hogy összesen 6 különböző korú ember van.
>> SELECT COUNT (DISTINCT Age) FROM adatokból.társadalmi;
MySQL COUNT (IF (kifejezés))
Nagy hangsúly érdekében egyesítenie kell a COUNT () elemet az áramlásszabályozó funkciókkal. Először is, a kifejezés (a COUNT () metódusban használt egy részéhez használhatja az IF () függvényt. Nagyon hasznos lehet ezt megtenni az információk gyors lebontása érdekében az adatbázisban. Számolni fogjuk a különböző életkori feltételekkel rendelkező sorok számát, és három különböző oszlopra osztjuk őket, amelyek kategóriának mondhatók. Először a COUNT (IF) megszámolja a 20 évesnél fiatalabb sorokat, és ezt a számot elmenti egy új „tizenéves” oszlopba. A második COUNT (IF) a 20 és 30 év közötti sorokat számolja, miközben a „Young” oszlopba menti. Harmadszor, az utolsó megszámolja azokat a sorokat, amelyek életkora meghaladja a 30 évet, és az „Érett” oszlopba ment. 5 kamasz, 9 fiatal és csak 1 érett ember van a nyilvántartásunkban.
>> SELECT COUNT (HA (Kor: < 20,1,NULL)) 'Teenage', COUNT(IF(Age BETWEEN 20 AND 30,1,NULL)) 'Young', COUNT(IF(Age > 30,1, NULL)) 'Érett' FROM adatokból.társadalmi;
MySQL COUNT (*) GROUP BY záradékkal
A GROUP BY utasítás egy SQL utasítás, amely azonos értékű csoportsorokhoz használható. Visszaadja az egyes csoportokban található értékek teljes számát. Például, ha külön-külön szeretné ellenőrizni az egyes felhasználók számát, akkor meg kell határoznia a „Felhasználó” oszlopot a GROUP BY záradékkal, miközben a COUNT (*) felhasználóra vonatkozó rekordokat kell számlálni.
>> SELECT User, COUNT (*) FROM adatok.közösségi CSOPORTBAN Felhasználó;
Vagy kiválaszthat kettőnél több oszlopot, miközben végrehajtja a sorok számlálását a GROUP BY záradékkal együtt, az alábbiak szerint.
>> SELECT felhasználó, életkor, webhely, COUNT (*) FROM adatokból.social GROUP BY Honlap;
Ha meg akarjuk számlálni a sorokat, miközben a WHERE záradékot használjuk, amelyben a GROUP BY és a COUNT (*) mellett van néhány feltétel, akkor ezt is megteheti. Az alábbi lekérdezés lekéri és megszámolja az oszlopok rekordjait: „Felhasználó”, „Webhely” és „Kor”, ahol a webhely értéke csak „Instagram” és „Snapchat”. Láthatja, hogy csak 1 rekord áll rendelkezésünkre mindkét webhelyről a különböző felhasználók számára.
>> SELECT felhasználó, webhely, életkor, COUNT (*) FROM adatokból.social WHERE Webhely = 'Instagram' Vagy Weboldal = 'Snapchat' GROUP BY Weboldal, életkor;
MySQL COUNT (*) GROUP BY és ORDER BY záradékkal
Próbáljuk ki a GROUP BY és a ORDER BY záradékokat a COUNT () metódussal együtt. Hívjuk le és számoljuk meg a "social" tábla sorait, miközben az adatokat csökkenő sorrendbe rendezzük a következő lekérdezés segítségével:
>> SELECT felhasználó, webhely, életkor, COUNT (*) FROM adatokból.társadalmi CSOPORT KORRENDSZER MEGTÖRTÉNEK SZÁMA SZÁMÁRA (*) DESC;
Az alább megadott lekérdezés először megszámolja a sorokat, majd növekvő sorrendben jeleníti meg az egyetlen olyan rekordot, amelynek COUNT értéke nagyobb, mint 2.
>> SELECT felhasználó, életkor, COUNT (*) FROM adatokból.társadalmi CSOPORT Életkor szerint SZÁMLÁLÓ (*)> 2 RENDELÉS SZÁMLÁLÓK SZERINT (*) ASC;
Következtetés
Az összes lehetséges módszert átéltük a megfelelő (vagy duplikált) rekordok számlálásához a COUNT () metódussal, különböző más záradékokkal.