SQLite
 sql >> Datenbank >  >> RDS >> SQLite

So addieren Sie nur die unterschiedlichen Werte mit SQLite Sum ()

In SQLite die Sum() Die Funktion akzeptiert einen optionalen DISTINCT Schlüsselwort, mit dem Sie nur die unterschiedlichen Werte in der Gruppe hinzufügen können. Das heißt, es entfernt alle Duplikate aus seiner Berechnung.

Wenn also beispielsweise drei Zeilen 10 enthalten, wird nur eine dieser Zeilen in die Ergebnisse aufgenommen.

Syntax

Die Syntax bei Verwendung von DISTINCT Schlüsselwort geht so:

Sum(DISTINCT X)

Wobei X ist der Name der Spalte, für die Sie Werte hinzufügen.

Beispiel

Betrachten Sie die folgende Tabelle namens Products :

ProductId   ProductName    Price     
----------  -------------  ----------
1           Widget Holder  139.5     
2           Blue Widget    10.0      
3           Red Widget     10.0      
4           Green Widget   10.0      
5           Widget Stick   89.75     
6           Foo Cap        11.99     

Unten sehen Sie ein Beispiel, wie Sie die eindeutige Summe aller Preise erhalten.

SELECT Sum(DISTINCT Price) 
FROM Products;

Ergebnis:

251.24

Hier ist es wieder, aber dieses Mal füge ich auch ein „nicht eindeutiges“ sum() hinzu zum Vergleich.

SELECT 
  Sum(Price),
  Sum(DISTINCT Price) 
FROM Products;

Ergebnis:

Sum(Price)  Sum(DISTINCT Price)
----------  -------------------
271.24      251.24             

Also die nicht eindeutige sum(Price) alle Werte unabhängig von Duplikaten hinzugefügt. Aber sum(DISTINCT Price) nur die eindeutigen Werte hinzugefügt.