sql >> Databáze >  >> RDS >> SQLite

Jak přidat pouze odlišné hodnoty pomocí SQLite Sum()

V SQLite, Sum() funkce přijímá volitelný DISTINCT klíčové slovo, které vám umožní přidat pouze odlišné hodnoty ve skupině. To znamená, že z výpočtu odstraní všechny duplikáty.

Pokud tedy existují řekněme tři řádky, které obsahují 10, do výsledků bude zahrnut pouze jeden z těchto řádků.

Syntaxe

Syntaxe při použití DISTINCT klíčové slovo vypadá takto:

Sum(DISTINCT X)

Kde X je název sloupce, pro který přidáváte hodnoty.

Příklad

Zvažte následující tabulku nazvanou 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     

Níže je uveden příklad získání zřetelného součtu všech cen.

SELECT Sum(DISTINCT Price) 
FROM Products;

Výsledek:

251.24

Tady je to znovu, ale tentokrát přidávám i „nerozlišující“ sum() pro srovnání.

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

Výsledek:

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

Tedy nerozlišující sum(Price) přidal všechny hodnoty bez ohledu na duplikáty. Ale sum(DISTINCT Price) pouze přidal odlišné hodnoty.


  1. Funkce podobnosti v Postgresu s pg_trgm

  2. Platné formáty časových řetězců pro funkce data/času SQLite

  3. Proč SQL Server automaticky ignoruje prázdné místo na konci?

  4. Převeďte django RawQuerySet na Queryset