Phần trăm SQL

Phan Tram Sql



Hai từ phổ biến có liên quan chặt chẽ với nhau đến mức bạn nghĩ chúng giống nhau là gì? Đối với chúng tôi, những nhà phát triển cơ sở dữ liệu, đó sẽ là cơ sở dữ liệu và số liệu thống kê SQL.

Một trong những phép tính thống kê phổ biến xuất hiện ngay cả trong quản trị cơ sở dữ liệu là phần trăm.

Phần trăm là thước đo thống kê cho phép chúng ta chia tập dữ liệu thành các phần bằng nhau. Vai trò của phân vị là cung cấp cái nhìn sâu sắc về việc phân phối dữ liệu, đó là cách chúng tôi hiểu cách phân bổ các giá trị.







Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách tính phần trăm trong SQL để chia dữ liệu thành nhiều phân đoạn khác nhau.



Bảng mẫu

Chúng ta hãy bắt đầu bằng cách thiết lập một bảng cơ bản chứa dữ liệu mẫu cho mục đích trình diễn. Điều này giúp chúng ta minh họa cách hoạt động của các phương pháp tính toán phần trăm khác nhau và kết quả đầu ra.



Chúng ta hãy tạo một bảng có tên là “sản phẩm” chứa thông tin về hàng tạp hóa. Mệnh đề “tạo bảng” như sau:





TẠO sản phẩm BẢNG (

sản phẩm_id INT KHÓA CHÍNH AUTO_INCREMENT,

tên_sản phẩmVARCHAR( 255 ),

danh mục VARCHAR( 255 ),

giá thập phân( 10 , 2 ),

số lượng INT,

ngày hết hạn DATE,

mã vạch BIGINT

);

Sau khi tạo bảng, chúng ta có thể tiến hành và thêm dữ liệu mẫu vào bảng. Chúng ta có thể sử dụng câu lệnh “insert” sau đây:

chèn
vào trong
sản phẩm (tên_sản phẩm,
loại,
giá,
Số lượng,
ngày hết hạn,
mã vạch)
giá trị ( 'Mũ đầu bếp 25cm' ,
'cửa hàng bánh mì' ,
24,67 ,
57 ,
'2023-09-09' ,
2854509564204 );

chèn
vào trong
sản phẩm (tên_sản phẩm,
loại,
giá,
Số lượng,
ngày hết hạn,
mã vạch)
giá trị ( 'Trứng Cút - Đóng Hộp' ,
'nhà bếp' ,
17,99 ,
67 ,
'2023-09-29' ,
1708039594250 );

chèn
vào trong
sản phẩm (tên_sản phẩm,
loại,
giá,
Số lượng,
ngày hết hạn,
mã vạch)
giá trị ( 'Cà phê - Egg Nog Capuccino' ,
'cửa hàng bánh mì' ,
92,53 ,
10 ,
'2023-09-22' ,
8704051853058 );

chèn
vào trong
sản phẩm (tên_sản phẩm,
loại,
giá,
Số lượng,
ngày hết hạn,
mã vạch)
giá trị ( 'Quả Lê - Gai' ,
'cửa hàng bánh mì' ,
65,29 ,
48 ,
'2023-08-23' ,
5174927442238 );

chèn
vào trong
sản phẩm (tên_sản phẩm,
loại,
giá,
Số lượng,
ngày hết hạn,
mã vạch)
giá trị ( 'Mì ống - Tóc thiên thần' ,
'nhà bếp' ,
48,38 ,
59 ,
'2023-08-05' ,
8008123704782 );

chèn
vào trong
sản phẩm (tên_sản phẩm,
loại,
giá,
Số lượng,
ngày hết hạn,
mã vạch)
giá trị ( 'Rượu - Prosecco Valdobiaddene' ,
'sản xuất' ,
44,18 ,
3 ,
'2023-03-13' ,
6470981735653 );

Cuối cùng, bạn sẽ có một bảng như sau:



Phần trăm SQL

Như bạn có thể đoán, cách tính phần trăm có thể khác nhau tùy thuộc vào công cụ cơ sở dữ liệu. Tuy nhiên, phương pháp phổ biến nhất là sử dụng hàm PERCENTILE_DISC() và PERCENTILE_CONT().

Các hàm này là một phần của đặc tả SQL tiêu chuẩn (2003). Do đó, nó chắc chắn sẽ được PostgreSQL và Oracle hỗ trợ.

PERCENTILE_CONT()

Chúng ta hãy bắt đầu với hàm PERCENTILE_CONT(). Hàm này cho phép chúng ta tính toán các giá trị phần trăm dưới dạng một phần của tập dữ liệu.

Hàm trả về một giá trị nội suy có thể không chính xác đối với điểm dữ liệu cụ thể trong tập dữ liệu của bạn.

Cú pháp hàm như sau:

PERCENTILE_CONT(phân vị) TRONG VÒNG NHÓM ( ĐẶT HÀNG THEO tên cột) QUÁ ();

Hàm chấp nhận các tham số sau:

  • Phần trăm – Nó chỉ định giá trị phần trăm mong muốn (0,0 đến 1,0).
  • tên_cột – Nó biểu thị cột mà chúng ta muốn tính phần trăm.
  • OVER () – Nó đặt chức năng cửa sổ để chỉ định toàn bộ tập dữ liệu.

Một ví dụ về cách sử dụng chức năng này như sau:

LỰA CHỌN

PERCENTILE_CONT( 0,5 ) Ở TRONG NHÓM ( ĐẶT HÀNG THEO giá) TRÊN () NHƯ trung vị

TỪ

các sản phẩm;

Lưu ý: Truy vấn đã cho chỉ hoạt động trong PostgreSQL vì MySQL không hỗ trợ việc sử dụng WITHIN GROUP.

Điều này tính toán 50 quần què phần trăm của dữ liệu được cung cấp.

PERCENTILE_DISC()

Chúng ta có thể sử dụng hàm PERCENTILE_DISC() để tính giá trị phần trăm dưới dạng giá trị riêng biệt trực tiếp từ tập dữ liệu.

Hàm trả về một giá trị tương ứng với một điểm dữ liệu thực tế.

Cú pháp hàm như sau (PostgreSQL):

PERCENTILE_DISC(phần trăm) TRONG VÒNG NHÓM ( ĐẶT HÀNG THEO tên cột) QUÁ ();

Một đầu ra ví dụ như sau:

LỰA CHỌN

PERCENTILE_DISC( 0,25 ) Ở TRONG NHÓM ( ĐẶT HÀNG THEO giá) TRÊN () NHƯ phân vị_25

TỪ

các sản phẩm;

Điều này sẽ tính toán 25 quần què phần trăm của dữ liệu.

Phần kết luận

Hướng dẫn này trình bày cách sử dụng các hàm khác nhau để tính toán phần trăm trong cơ sở dữ liệu SQL.