Tag Archive for SUM

GROUP BY og WITH ROLLUP function

GROUP BY er en funktion som bruges til at gruper en række rows som det formenligt også ligger i navnet GROUP BY, men man kan også lave nogle trisk som spare SQL serveren og dig selv for tid, det kan være hvis du eks. Har en række tal du gerne vil ha lagt sammen i en indkøbs kurve så kan GROUP BY benyttes på denne måde.

SELECT sum( shopAntal ) AS TotalAntal, sum( shopPris * shopAntal ) AS TotalPris FROM shop_barsket WHERE userId = ‘brugerid’ GROUP BY userId;

denne SQL ligge alle vare antal og alle priseren sammen til et enklet row udtræk så du ikke skal til at køre en while løkke for at tælle det hele sammen endnu en gang og der efter beregne din data.

Når man kommer til at tælle tal sammen og faktisk ikke gider at lave 2 SQL udtræk kan man gøre det hele meget simplet, for at slippe for 2 SQL udtræk kan man lave et WITH ROLLUP satament som tæller alle ens int værdier sammen og til sidst laver et ekster row udtræk hvor den har indeholder NULL i de steder som ikke er INT værdier eller er regnet sammen.

SELECT SUM( shopAntal ) AS TotalAntal, sum( shopPris * shopAntal ) AS TotalPris FROM shop_barsket WHERE userId = ‘brugerid’ GROUP BY produktId, userId WITH ROLLUP;

SUM() og AVG() Function

SUM() og AVG() bruges til at regne en total antal sammen og finde gennemsnittet af en række tal, man kan renge alle landens indbygger sammen og derefter finde et gennemsnit på hvormange der er i hvert land eks.

SELECT SUM( Population ), AVG ( Population ) FROM Country;
return:  SUM( Population ) = 6078749450, AVG( Population ) = 25434098.1172

Hvis SUM() og AVG() bliver brut på andre felter end et tal vil den automatisk forsøge at lave dit felt om til talværdi, den hopper over alle NULL vædir i databasen.