SQLite
 sql >> Baza danych >  >> RDS >> SQLite

Jak działa SQLite Max()

SQLite max() funkcja zwraca maksymalną wartość spośród wszystkich wartości w grupie.

Maksymalna wartość to wartość, która pojawiłaby się jako ostatnia w zapytaniu używającym ORDER BY klauzula w tej samej kolumnie.

Przykład

Oto przykład do zademonstrowania.

SELECT max(Price) FROM Products;

Wynik:

389.45

Oto zapytanie, które zwraca wszystkie wiersze w tej tabeli.

SELECT * FROM Products 
ORDER BY Price;

Wynik:

ProductId   ProductName  Price     
----------  -----------  ----------
5           Red Widget             
3           Widget Open  89.27     
4           Foobar Set   120.0     
2           Widget Hold  139.5     
1           Blue Widget  389.45    

Zauważ, że pierwszy wiersz ma wartość NULL dla ceny. max() funkcja ignoruje to, ponieważ inne wiersze mają wartości różne od NULL. Jeśli wszystkie wiersze mają wartość NULL, to max() zwróci NULL.

Użyłem ORDER BY w tym przykładzie. Jak wspomniano, max() funkcja zwraca wartość, która pojawia się jako ostatnia przy użyciu tej klauzuli (zakładając, że uporządkujesz kolumnę w kolejności rosnącej, co jest domyślne).

Żeby było jasne, do tego samego wyniku mogłem użyć następującego:

SELECT * FROM Products 
ORDER BY Price ASC;

Połącz Max() z Count()

Oto przykład, który łączy max() funkcja z count() funkcja, aby zwrócić maksymalną liczbę.

SELECT max(AlbumCount) 
FROM (SELECT ArtistId, count(Title) AS AlbumCount
FROM Album
GROUP BY ArtistId);

Wynik:

21       

Możemy to zweryfikować, uruchamiając kolejne zapytanie z ORDER BY klauzula.

SELECT 
  ar.Name, 
  count(al.Title) AS AlbumCount
FROM Album al
INNER JOIN Artist ar
ON ar.ArtistId = al.ArtistId
GROUP BY ar.Name
ORDER BY AlbumCount DESC
LIMIT 10;

Wynik:

Name                  AlbumCount
--------------------  ----------
Iron Maiden           21        
Led Zeppelin          14        
Deep Purple           11        
Metallica             10        
U2                    10        
Ozzy Osbourne         6         
Pearl Jam             5         
Faith No More         4         
Foo Fighters          4         
Lost                  4                

Postępowanie z wartościami NULL

Jak wspomniano, jeśli w grupie nie ma wartości innych niż NULL (tzn. wszystkie wartości mają wartość NULL), to max() zwraca NULL.

SELECT 
  max(123),
  max(NULL);

Wynik:

max(123)    max(NULL) 
----------  ----------
123                   

Korzystanie z funkcji Max() na ciągach

Jak wspomniano, max() zwraca wartość, która byłaby zwrócona jako ostatnia przy użyciu ORDER BY klauzula (zakładając, że używa domyślnej kolejności rosnącej).

Ta sama koncepcja dotyczy ciągów.

SELECT max(ProductName) FROM Products;

Wynik:

Widget Opener

Więc nie zwraca ciągu z maksymalną liczbą znaków ani niczego w tym rodzaju.

Możemy zweryfikować ten wynik za pomocą zapytania przy użyciu ORDER BY klauzula.

SELECT * FROM Products 
ORDER BY ProductName;

Wynik:

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zmień separator na przecinek w wynikach zapytania SQLite

  2. Błąd SQLiteConstraintException wyświetlany po rozpoczęciu każdej aktywności

  3. jak uruchomić aplikację z SQLite darabase na emulatorze Android Studio?

  4. usuń bazę danych sqlite podczas aktualizacji nowej wersji aplikacji

  5. SQLite Sum() vs Total():Jaka jest różnica?