„MySQL“ skaičių atitinkantys įrašai su COUNT

Mysql Count Matching Records With Count



Duomenų perteklius atsiranda dėl daugelio priežasčių. Keletas sudėtingų užduočių, kurias turėtumėte atlikti dirbdami su duomenų bazių sistemomis, bando atrasti pasikartojančias vertes. Šiuo tikslu mes naudosime COUNT () kaupimo metodą. COUNT () metodas grąžina konkrečioje lentelėje esančių eilučių sumą. Funkcija COUNT () leidžia apibendrinti visas eilutes arba tik eilutes, atitinkančias apibrėžtą sąlygą. Šiame vadove sužinosite, kaip nustatyti pasikartojančias vieno ar kelių MySQL stulpelių reikšmes naudojant COUNT (). COUNT () metodas yra trijų tipų:

  • COUNT (*)
  • COUNT (išraiška)
  • COUNT (DISTINCT išraiška)

Įsitikinkite, kad jūsų sistemoje įdiegta „MySQL“. Norėdami tęsti, atidarykite „MySQL“ komandinės eilutės kliento apvalkalą ir įveskite slaptažodį. Apžvelgsime keletą pavyzdžių, kaip suskaičiuoti atitinkamas vertes naudojant COUNT () metodą.









Savo schemoje „duomenys“ turime lentelę „socialinė“. Patikrinkime jo įrašą naudodami šią užklausą.



>> PASIRINKTI * NUO duomenis .Socialus;





„MySQL COUNT“ (*)

COUNT (*) metodas naudojamas skaičiuoti lentelėje esančių eilučių skaičių arba skaičiuoti eilučių skaičių pagal nurodytą sąlygą. Norėdami patikrinti bendrą lentelės eilučių skaičių, „socialinis“ išbandykite toliau pateiktą užklausą. Pagal rezultatą iš viso turime 15 eilučių lentelėje.

>> PASIRINKTI COUNT (*) NUO duomenis .Socialus;



Pažvelkite į COUNT (*) metodą, apibrėždami kai kurias sąlygas. Turime nuskaityti eilučių, kuriose vartotojo vardas yra toks pat kaip „Mustafa“, skaičių. Matote, kad turime tik 4 šio konkretaus vardo įrašus.

>> PASIRINKTI COUNT (*) NUO duomenis .Socialus KUR Vartotojas =„Mustafa“;

Jei norite gauti bendrą eilučių, kuriose naudotojų svetainė yra „Instagram“, sumą, išbandykite toliau nurodytą užklausą. Lentelėje „socialinis“ yra tik 4 svetainės „Instagram“ įrašai.

>> PASIRINKTI COUNT (*) NUO duomenis .Socialus KUR Interneto svetainė=„Instagram“;

Norėdami gauti bendrą eilučių, kuriose „amžius“ yra didesnis nei 18, skaičių, atlikite šiuos veiksmus:

>> PASIRINKTI COUNT (*) NUO duomenis .Socialus KUR Amžius> 18;

Paimkime stulpelių „Vartotojas“ ir „Svetainė“ duomenis iš lentelės, kur vartotojo vardas prasideda abėcėle „M“. Išbandykite toliau pateiktą korpuso instrukciją.

>> PASIRINKTI Vartotojas ,Interneto svetainė NUO duomenis .Socialus KUR Vartotojas Kaip „M%';

„MySQL COUNT“ (išraiška)

„MySQL“ metodas COUNT (išraiška) naudojamas tik tada, kai norite suskaičiuoti stulpelio „išraiška“ ne nulines reikšmes. „Išraiška“ būtų bet kurio stulpelio pavadinimas. Paimkime paprastą jo pavyzdį. Mes skaičiavome tik nenulines stulpelio „Svetainė“ reikšmes, kurios yra susijusios su stulpeliu „Amžius“, kurio vertė lygi „25“. Pamatyti! Turime tik 4 nenumatytus įrašus naudotojams, sulaukusiems „25“, kurie naudojasi svetainėmis.

>> PASIRINKTI COUNT (Interneto svetainė) NUO duomenis .Socialus KUR Amžius= 25;

„MySQL COUNT“ (DISTNCT išraiška)

„MySQL“ COUNT (DISTINCT išraiška) metodas naudojamas sumoms, kurios nėra nulinės, ir skirtingoms stulpelio „išraiška“ reikšmėms susumuoti. Norėdami apskaičiuoti skirtingą nenulinių verčių skaičių stulpelyje „Amžius“, naudojome toliau pateiktą užklausą. Lentelėje „socialinis“ rasite 6 niekinius ir skirtingus stulpelio „Amžius“ įrašus. Tai reiškia, kad iš viso turime 6 skirtingo amžiaus žmones.

>> PASIRINKTI COUNT ( SKIRTIS Amžius) NUO duomenis .Socialus;

„MySQL COUNT“ (JEI (išraiška))

Jei norite pabrėžti, turėtumėte sujungti COUNT () su srauto valdymo funkcijomis. Pradedantiesiems, kai išraiškos dalis naudojama metodu COUNT (), galite naudoti funkciją IF (). Tai gali būti labai naudinga, jei norite greitai suskaidyti informaciją duomenų bazėje. Mes skaičiuosime eilučių skaičių su skirtingomis amžiaus sąlygomis ir skirsime jas į tris skirtingus stulpelius, kuriuos galima pasakyti kaip kategorijas. Pirma, COUNT (IF) skaičiuos eilutes, kurių amžius mažesnis nei 20 metų, ir išsaugos šį skaičių naujame stulpelyje pavadinimu „Paaugliai“. Antrasis COUNT (IF) skaičiuoja eilutes, kurių amžius yra nuo 20 iki 30 metų, ir išsaugomas stulpelyje „Jaunas“. Trečia, paskutinis skaičiuoja eilutes, kurių amžius yra didesnis nei 30 ir išsaugotos stulpelyje „Subrendęs“. Mūsų įraše yra 5 paaugliai, 9 jauni ir tik 1 subrendęs žmogus.

>> PASIRINKTI COUNT ( JEI (Amžius< dvidešimt,1, NULL ))„Paauglys“, COUNT ( JEI (Amžius TARP dvidešimt IR 30,1, NULL ))„Jaunas“, COUNT ( JEI (Amžius> 30,1, NULL ))„Subrendęs“ NUO duomenis .Socialus;

„MySQL COUNT“ (*) su sąlyga „GROUP BY“

„GROUP BY“ teiginys yra SQL instrukcija, naudojama grupėms su tomis pačiomis reikšmėmis. Pateikiamas bendras kiekvienoje grupėje esančių verčių skaičius. Pavyzdžiui, jei norite patikrinti kiekvieno vartotojo numerį atskirai, turite apibrėžti stulpelį „Vartotojas“, naudodami sąlygą GROUP BY, skaičiuodami kiekvieno vartotojo įrašus su COUNT (*).

>> PASIRINKTI Vartotojas , COUNT (*) NUO duomenis .Socialus GRUPUOTI PAGAL Vartotojas ;

Skaičiuodami eilutes kartu su sąlyga GROUP BY, galite pasirinkti daugiau nei du stulpelius, kaip nurodyta toliau.

>> PASIRINKTI Vartotojas ,Amžius,Interneto svetainė, COUNT (*) NUO duomenis .Socialus GRUPUOTI PAGAL Interneto svetainė;

Jei norime suskaičiuoti eilutes naudodami WHERE sąlygą, kurioje yra tam tikros sąlygos kartu su GROUP BY ir COUNT (*), taip pat galite tai padaryti. Žemiau pateikta užklausa gaus ir suskaičiuos stulpelių įrašus: „Vartotojas“, „Svetainė“ ir „Amžius“, kai svetainės vertė yra tik „Instagram“ ir „Snapchat“. Matote, kad turime tik 1 įrašą apie abi svetaines skirtingiems vartotojams.

>> PASIRINKTI Vartotojas ,Interneto svetainė,Amžius, COUNT (*) NUO duomenis .Socialus KUR Interneto svetainė=„Instagram“ Arba Interneto svetainė=„Snapchat“ GRUPUOTI PAGAL Interneto svetainė,Amžius;

„MySQL COUNT“ (*) su sąlyga GROUP BY ir ORDER BY

Išbandykime išlygas GROUP BY ir ORDER BY kartu su COUNT () metodu. Surinksime ir suskaičiuosime „socialinės“ lentelės eilutes, tvarkydami duomenis mažėjančia tvarka naudodami šią užklausą:

>> PASIRINKTI Vartotojas ,Interneto svetainė,Amžius, COUNT (*) NUO duomenis .Socialus GRUPUOTI PAGAL Amžius RŪŠIUOTI PAGAL COUNT (*) DESC ;

Žemiau nurodyta užklausa pirmiausia skaičiuoja eilutes, o tada rodo didėjančia tvarka tik įrašus, kurių COUNT yra didesnis nei 2.

>> PASIRINKTI Vartotojas ,Amžius, COUNT (*) NUO duomenis .Socialus GRUPUOTI PAGAL Amžius Turėdamas COUNT (*) > 2 RŪŠIUOTI PAGAL COUNT (*) ASC ;

Išvada

Išnagrinėjome visus galimus metodus, kaip suskaičiuoti atitinkančius ar pasikartojančius įrašus, naudojant metodą COUNT () su kitomis kitomis sąlygomis.