sql >> Database teknologi >  >> RDS >> SQLite

Sådan fungerer SQLite Total()

I SQLite er total() funktion returnerer summen af ​​alle ikke-NULL værdier i en gruppe.

Hvis der ikke er nogen ikke-NULL-værdier, returnerer det 0,0.

Denne funktion ligner sum() funktion, undtagen i den måde, den håndterer NULL-input. Når der ikke er nogen ikke-NULL værdier, så sum() returnerer NULL (i stedet for 0,0 som total() funktion returnerer).

Eksempel

Overvej følgende tabel.

SELECT * FROM Products;

Resultat:

ProductId   ProductName            Price     
----------  ---------------------  ----------
1           Blue Widgets (6 Pack)  389.45    
2           Widget Holder          139.5     
3           Widget Opener          89.27     
4           Foobar Set             120.0     
5           Red Widget                    

Vi kan bruge total() funktion for at få en total af priserne.

SELECT total(Price) FROM Products;

Resultat:

738.22

Selvom den sidste rækkes pris er NULL, er total() funktionen kan håndtere det, fordi den tilføjer alle ikke-NULL-værdier og ignorerer NULL-værdien.

Alle NULL-værdier

Hvis der ikke er nogen ikke-NULL værdier, så er resultatet 0,0.

SELECT total(Price) 
FROM Products
WHERE ProductId = 5;

Resultat:

0.0      

Det er her total() og sum() afvige. I dette tilfælde sum() ville have returneret NULL.

total() funktion returnerer altid en flydende kommaværdi.

Husk, at dette dog ikke er i overensstemmelse med SQL-standarden. Hvis du vil bruge standardkompatibel kode, skal du bruge sum() .

Få summen af ​​en delmængde

Her er et andet eksempel, der bruger en WHERE klausul for at returnere en delmængde af tabellen.

SELECT total(Price) 
FROM Products
WHERE ProductId > 2;

Resultat:

209.27

Denne gang tilføjer det ikke-NULL-værdier, så jeg får et ikke-NULL-resultat.

Her er en anden, der filtrerer efter den samme kolonne, som jeg tilføjer.

SELECT total(Price) 
FROM Products
WHERE Price < 150;

Resultat:

348.77 

  1. Husk dette, når du formaterer en TIME-datatype i SQL Server (T-SQL)

  2. Lære 2 og Mange-til-mange linktabel med et ekstra felt

  3. Smid en fejl, der forhindrer en tabelopdatering i en MySQL-trigger

  4. sqlite returnerede:fejlkode =1, msg =ingen sådan kolonne:køkken1