Làm cách nào để tính giá trị null trong khi thực hiện truy vấn thẻ chéo?Đếm các giá trị Null trong MYSQL
Tôi có một bảng với ba colums [id, tên, câu trả lời]
tôi có hồ sơ sau đây:
ID NAME ANS
1 ABC 1
1 ABC 0
1 ABC NULL
2 XYZ 1
2 XYZ NULL
2 XYZ NULL
2 XYZ 1
2 XYZ 0
1 ABC 0
bây giờ tôi muốn có được kết quả của tôi:
ID Name NULLCOUNT TRUE COUNT FALSE COUNT
1 ABC 1 1 2
2 XYZ 2 2 1
Tôi đang sử dụng Tuyên bố SQL sau:
select ID, NAME,
sum(case ANS when null then 1 else 0 end) as NULLCOUNT,
sum(case ANS when 1 then 1 else 0 end) as TRUECOUNT,
sum(case ANS when 0 then 1 else 0 end) as FALSECOUNT
from
TBL1
Group By ID, Name
Nhận kết quả của tôi:
ID Name NULLCOUNT TRUE COUNT FALSE COUNT
1 ABC 0 1 2
2 XYZ 0 2 1
Số NULL đang gặp lỗi. Tại sao và làm thế nào tôi có thể giải quyết vấn đề này?
thnx nó đã hoạt động nhưng muốn hỏi lý do tại sao nó khác với tiền thật và tiền thưởng. Chẳng phải nó cũng giống như vậy cho truecount và falsecount sao? Điều nào là đúng cho những người khác còn lại quá – KoolKabin
null giống như không xác định. Không xác định! = Không xác định. – foret
@KoolKabin: vì bạn đang so sánh hoàn toàn ANS và NULL trong cấu trúc 'case'. Tuy nhiên, NULL không bằng bất cứ điều gì, thậm chí không chính nó: 'NULL! = NULL' (đánh giá là đúng). Bạn cần sử dụng cấu trúc "IS NULL" đặc biệt: 'NULL IS NULL' (đánh giá là đúng). Tricky, vâng. Hữu ích, cũng có. – Piskvor