sql >> Database >  >> RDS >> SQLite

Hoe SQLite Total() werkt

In SQLite is de total() functie retourneert de som van alle niet-NULL-waarden in een groep.

Als er geen niet-NULL-waarden zijn, wordt 0,0 geretourneerd.

Deze functie is vergelijkbaar met de sum() functie, behalve in de manier waarop het omgaat met NULL-invoer. Als er geen niet-NULL-waarden zijn, dan sum() geeft NULL terug (in plaats van 0.0 zoals de total() functie keert terug).

Voorbeeld

Bekijk de volgende tabel.

SELECT * FROM Products;

Resultaat:

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                    

We kunnen de total() . gebruiken functie om een ​​totaal van de prijzen te krijgen.

SELECT total(Price) FROM Products;

Resultaat:

738.22

Ook al is de prijs van de laatste rij NULL, de total() functie kan dat aan, omdat het alle niet-NULL-waarden optelt en de NULL-waarde negeert.

Alle NULL-waarden

Als er geen niet-NULL-waarden zijn, is het resultaat 0.0.

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

Resultaat:

0.0      

Dit is waar total() en sum() verschillen. In dit geval sum() NULL zou hebben geretourneerd.

De total() functie retourneert altijd een drijvende-kommawaarde.

Houd er echter rekening mee dat dit niet voldoet aan de SQL-standaard. Als u standaard compatibele code wilt gebruiken, gebruikt u sum() .

Het totaal van een subset ophalen

Hier is nog een voorbeeld dat een WHERE . gebruikt clausule om een ​​subset van de tabel te retourneren.

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

Resultaat:

209.27

Deze keer voegt het niet-NULL-waarden toe, dus ik krijg een niet-NULL-resultaat.

Hier is er nog een die filtert op dezelfde kolom die ik toevoeg.

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

Resultaat:

348.77 

  1. Hoe ORA-29280 op te lossen:ongeldig mappad

  2. CX_Oracle - importeer gegevens van Oracle naar Panda's dataframe

  3. Oracle:Wat doet `(+)` in een WHERE-clausule?

  4. SQLite - Een tabel maken