sql >> Database >  >> RDS >> SQLite

Alleen de verschillende waarden toevoegen met SQLite Sum()

In SQLite is de Sum() functie accepteert een optionele DISTINCT trefwoord waarmee u alleen de afzonderlijke waarden in de groep kunt toevoegen. Dat wil zeggen, het verwijdert eventuele duplicaten uit de berekening.

Dus als er bijvoorbeeld drie rijen zijn die 10 bevatten, wordt slechts één van die rijen in de resultaten opgenomen.

Syntaxis

De syntaxis bij gebruik van de DISTINCT zoekwoord gaat als volgt:

Sum(DISTINCT X)

Waar X is de naam van de kolom waarvoor u waarden toevoegt.

Voorbeeld

Bekijk de volgende tabel met de naam 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     

Hieronder ziet u een voorbeeld van het verkrijgen van de afzonderlijke som van alle prijzen.

SELECT Sum(DISTINCT Price) 
FROM Products;

Resultaat:

251.24

Hier is het weer, maar deze keer voeg ik ook een "niet-onderscheidende" sum() toe ter vergelijking.

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

Resultaat:

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

Dus de niet-onderscheiden sum(Price) alle waarden toegevoegd, ongeacht duplicaten. Maar sum(DISTINCT Price) alleen de afzonderlijke waarden toegevoegd.


  1. 3 manieren om rijen met kleine letters te vinden in MySQL

  2. Operand moet 1 kolom bevatten - MySQL NIET IN

  3. Oracle Instantclient installeren op Mac OS/X zonder omgevingsvariabelen in te stellen?

  4. Ruby gem mysql2 installatie mislukt