Tag Archive for count

COUNT() Function

COUNT() bruges til at tælle et X antal rækker sammen som er tilgænlige at liste ud eks.

SELECT COUNT(*) FROM t;
return:  COUNT(*) = 7

Her retuerer den talet 7 fordi der er fundet 7 rækker som er klar til at blive listet ud, man kan også benytte COUNT() på en bestemt felt navn eks.

SELECT COUNT( i ), COUNT( j ) FROM t;
return: COUNT( i ) = 5, COUNT( j ) = 4

Her vil den retuere 5 og 4 fordi den kun tæller de ting sammen hvor der ikke findes et NULL også kaldt for ( non-null value ), hvis man ønsker kun at få talt de ting sammen som er 100% unik i en række kan man her bruge DISTINCT functionen eks.

SELECT COUNT( DISTINCT i ), COUNT( DISTINCT j ) FROM t;
return:  COUNT( DISTINCT i )  =  1, COUNT( DISTINCT j ) = 3

Det er også muligt at kombinere felter med DISTINCT inde i en COUNT() så leds at man får et mere spefikt udtrækt eks.

SELECT COUNT( DISTINCT i, j ) FROM t;
return: COUNT( DISTINCT i, j ) = 2

Den trækker alle felter ud som ikke er ens og ikke indeholder NULL værdien.

Brugen af DISTINCT til at fjerne doblet row

For at fjerne en række der gentager sig når du nu trækker et udtræk ud så alle dine udtræk er unikke kan du gøre det ved at bruge DISTINCT efter SELECT og før du printer outputtet til browseren.

SELECT DISTINCT last_name FROM t;

Der er forskel på hvordan den fjerne disse gentaglser alt efter om du bruger binær eller ikke binær felter, hvis du bruger binær er ”ABC, Abc og abc” forskellige til hvis du bruger ikke binær felter.

Ved brugen af DISTINCT kan du benytte multi select til at ude lukke en støre sansynlighed for en dublikering.

SELECT DISTINCT last_name, first_name FROM t;

DISTINCT er god til små mængte data men skal man op og benytte nogle forskellige ting som at udelukke 2 e-mail adresser men stadig have brugers navn og adresse med ud kan DSTINCT ikke benyttes, til dette formål ville det være en bædre løsning hvis der bliver benyttet GROUP BY statment.

SELECT navn, adresse, email FROM table GROUP BY email;

På denne måde samler man alle emails samme i en gruppe hvor efter man kan trække adresse og navn med ud som en multi select.

Den største forskel mellem DISTINCT og GROUP BY er at DISTINCT ikke kan sorters men det kan GROUP BY godt, der i mod kan DISTINCT tælle sammen hvor mange lighedere der er mellem sin egen række som eks. Sådan her.

SELECT COUNT( DISTINCT j ) FROM t;