Trong bài viết này, bạn sẽ thấy các cách khác nhau để tính tỷ lệ phần trăm SQL giữa nhiều cột và hàng. Bạn cũng sẽ thấy cách tính tỷ lệ phần trăm SQL cho các cột số, được nhóm theo các cột phân loại. Bạn sẽ sử dụng các truy vấn con, mệnh đề OVER và các biểu thức bảng chung [CTE] để tìm tỷ lệ phần trăm SQL
Vì vậy, hãy bắt đầu mà không có bất kỳ quảng cáo nào
Tìm tỷ lệ phần trăm bằng cách sử dụng hai biến
Không có toán tử tích hợp nào tính toán tỷ lệ phần trăm trong SQL Server. Bạn phải dựa vào các phép toán số học cơ bản. e. [number1/number2 x 100] để tìm tỷ lệ phần trăm trong SQL Server
Trước khi tìm phần trăm SQL trên các hàng và cột, trước tiên hãy xem cách bạn có thể tìm phần trăm bằng cách sử dụng hai biến cơ bản trong SQL Server
Tập lệnh bên dưới xác định ba biến float @num1, @num2 và @perc. Tiếp theo, biến @num2 được chia cho biến @num1 và kết quả được nhân với 100, được lưu trong biến @perc và được in trên bàn điều khiển
1
2
3
4
5
6
7
8
9
10
KHAI BÁO @num1 as FLOAT
KHAI BÁO @num2 as FLOAT
KHAI BÁO @perc as FLOAT
SET @num1 = 150
SET @num2 = 50
SET @perc = @num2/@num1 * 100
IN @perc
đầu ra
Tìm tỷ lệ phần trăm giữa hai cột
Tìm Tỷ lệ phần trăm giữa hai cột rất đơn giản. Bạn có thể chỉ cần sử dụng tên cột và toán tử chia “/” để chia các giá trị trong cột này cho cột khác. Kết quả là một danh sách các giá trị tương ứng với kết quả của phép chia tất cả các giá trị trong hai cột
Hãy xem một ví dụ
Tập lệnh bên dưới, tạo một bảng Kết quả với hai cột kiểu float “đã nhận được” và “tổng cộng”. Tập lệnh cũng chèn năm hàng giả trong bảng Kết quả. Sau đó, truy vấn CHỌN sẽ chọn tất cả các bản ghi trong bảng Kết quả. Đây là một ví dụ
1
2
3
4
5
TẠO BẢNG Kết quả[thu được float, total float]
CHÈN VÀO giá trị kết quả[15,50],[10,50],[20,50],[40,50],[25,50]
CHỌN *
TỪ Kết quả
đầu ra
Hãy thử tìm tỷ lệ phần trăm cho mỗi hàng là kết quả của phép chia giữa các giá trị trong cột "thu được" và "tổng" như được hiển thị bên dưới nơi một cột mới được thêm vào cho tỷ lệ phần trăm
1
2
CHỌN đã nhận được, tổng, obtained/total * 100 as 'percentage'
TỪ Kết quả
Tìm tỷ lệ phần trăm thông qua truy vấn con
Tìm tỷ lệ phần trăm SQL giữa hai cột rất đơn giản. Tuy nhiên, quá trình này không đơn giản để tìm tỷ lệ phần trăm trên các hàng cho các tình huống khác nhau
Trước tiên, hãy thảo luận về một tình huống rất đơn giản trong đó bạn phải tìm phần trăm của một giá trị trong một cột trong số tất cả các hàng trong cột là bao nhiêu
Đoạn script sau tạo một bảng Scores với một cột
1
2
3
4
5
TẠO BẢNG Điểm[giá trị float]
CHÈN Điểm[giá trị] values[15],[10],[20],[40],[25];
CHỌN *
TỪ Điểm
đầu ra
Bây giờ nếu bạn muốn tìm xem mỗi giá trị cấu thành bao nhiêu phần trăm tổng của tổng giá trị trong cột “val”, bạn có thể sử dụng truy vấn con
Về vấn đề này, truy vấn bên ngoài sẽ nhân tất cả các giá trị trong cột “val” với 100, giá trị này sẽ được chia cho kết quả của truy vấn con tìm tổng của tất cả các giá trị trong cột “val”
Trước tiên hãy xem giao diện của truy vấn con tính tổng các giá trị trong cột “val”
1
2
CHỌN SUM[val] as 'Total Sum'
TỪ Điểm
đầu ra
Tập lệnh sau trả về tỷ lệ phần trăm của tổng số cho từng giá trị trong cột “val”
1
2
3
CHỌN val,
val * 100/[SELECT SUM[val] FROM Scores] as 'Percentage of Total'
Từ Điểm
Nếu bạn không muốn loại trừ bất kỳ giá trị nào trong khi tính tỷ lệ phần trăm của tổng số, bạn có thể làm như vậy với mệnh đề WHERE như được hiển thị trong tập lệnh bên dưới khi không bao gồm giá trị 40
1
2
CHỌN val,
val * 100/[SELECT SUM[val] FROM Scores WHERE val