Vì vậy, có hàm SQL AVG(), lấy giá trị trung bình của tất cả các giá trị trong một cột, bỏ qua tất cả các giá trị NULL. Nếu một người cần phải tạo một mức trung bình có trọng số, thì họ chỉ cần sử dụng SUM (giá trị * trọng lượng)/SUM (trọng số) với mệnh đề Nhóm theo.Tạo trọng số trung bình - Trọng số giảm cho giá trị NULL
Nếu tôi muốn thực hiện sau, nhưng một số giá trị của tôi là NULL, thì làm cách nào để nói cho SQL bỏ qua trọng số bằng quan sát giá trị NULL trong hàm SUM (trọng số)?
Vấn đề khác của tôi là tôi lấy trung bình 90 cột khác nhau cùng một lúc, vì vậy tôi muốn tránh tạo 90 biến trọng số mới cho phép tính này.
Hãy cho tôi biết nếu tôi đã thực hiện điều này rõ ràng hay không.
Tôi đang sử dụng SQL Server 2005
@Gordon .... sẽ không phải là bom nếu giá trị là null vì nó sẽ chia cho số không? Hoặc điều gì sẽ xảy ra khi giá trị là null – MikeTWebb
@MikeTWebb. . . NULL trong * any * hoạt động khác với 'IS NULL' và' IS NOT NULL' trả về NULL. Điều đó thậm chí còn đúng cho việc chia cho 0. Nhưng, tôi đã đưa vào phiên bản thứ hai trong trường hợp ai đó có thể nghĩ về điều đó. Nó sẽ rõ ràng hơn trả về NULL nếu không có gì phù hợp. –
+1 nhưng 'um' ... Tôi nghĩ bạn có nghĩa là' sum'. :-) –