SQLite
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> SQLite

Cách hoạt động của SQLite Max ()

SQLite max() hàm trả về giá trị lớn nhất từ ​​tất cả các giá trị trong một nhóm.

Giá trị lớn nhất là giá trị sẽ xuất hiện cuối cùng trong truy vấn sử dụng ORDER BY mệnh đề trên cùng một cột.

Ví dụ

Đây là một ví dụ để chứng minh.

SELECT max(Price) FROM Products;

Kết quả:

389.45

Đây là một truy vấn trả về tất cả các hàng trong bảng đó.

SELECT * FROM Products 
ORDER BY Price;

Kết quả:

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    

Lưu ý rằng hàng đầu tiên có giá trị NULL cho giá. max() hàm bỏ qua điều đó, vì các hàng khác có giá trị không phải NULL. Nếu tất cả các hàng đều là NULL, thì max() sẽ trả về NULL.

Tôi đã sử dụng ORDER BY mệnh đề trong ví dụ này. Như đã đề cập, max() hàm trả về giá trị xuất hiện cuối cùng khi sử dụng mệnh đề này (giả sử bạn sắp xếp cột theo thứ tự tăng dần, đây là giá trị mặc định).

Chỉ cần nói rõ, tôi có thể đã sử dụng những thứ sau cho cùng một kết quả:

SELECT * FROM Products 
ORDER BY Price ASC;

Kết hợp Max () với Count ()

Dưới đây là một ví dụ kết hợp max() hàm với count() hàm để trả về số lượng tối đa.

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

Kết quả:

21       

Chúng tôi có thể xác minh điều này bằng cách chạy một truy vấn khác với ORDER BY mệnh đề.

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;

Kết quả:

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                

Xử lý các giá trị NULL

Như đã đề cập, nếu không có giá trị nào không phải NULL trong nhóm (tức là tất cả các giá trị đều là NULL), thì max() trả về NULL.

SELECT 
  max(123),
  max(NULL);

Kết quả:

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

Sử dụng Max () trên chuỗi

Như đã đề cập, max() trả về giá trị sẽ được trả lại sau cùng bằng cách sử dụng ORDER BY (giả sử nó đang sử dụng thứ tự tăng dần mặc định).

Khái niệm này cũng áp dụng cho chuỗi.

SELECT max(ProductName) FROM Products;

Kết quả:

Widget Opener

Vì vậy, nó không trả về chuỗi có số lượng ký tự tối đa hoặc bất kỳ thứ gì tương tự.

Chúng tôi có thể xác minh kết quả này bằng một truy vấn sử dụng ORDER BY mệnh đề.

SELECT * FROM Products 
ORDER BY ProductName;

Kết quả:

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. Khóa chính của SQLite AutoIncrement không hoạt động

  2. Truy vấn SQLite:lấy tất cả các cột của một hàng (android)?

  3. Làm thế nào để tìm ra người dùng có mặt trong Cơ sở dữ liệu Sqlite bằng cách sử dụng Android?

  4. Làm cách nào để chia một SQLiteOpenHelper dài, đơn lẻ thành nhiều lớp, mỗi lớp một cho mỗi bảng

  5. SQLite - Câu lệnh JOIN