Tải xuống bao gồm số lần tải xuống, id thời gian tải xuống và ID buno. Lỗi bao gồm mã lỗi, id thời gian tải xuống, trạng thái và loại. Tải xuống có thể có nhiều lỗi và có thể được kết hợp trên id thời gian tải xuống.Tham gia bên ngoài bên trái trong Postgres Không trả lại giá trị cho Null
Đưa ra một bộ mã lỗi, kết quả phải chứa từng mã lỗi với số lượng lỗi tương ứng. Nếu không tìm thấy mã lỗi trong quá trình tải xuống, mã lỗi phải được trả về với số lỗi là 0.
Vấn đề dường như yêu cầu OUTER JOIN, nhưng chưa thấy điều này làm việc như mong đợi trên Postgres vì nó dường như không trả về tập hợp có null từ bảng LEFT.
Truy vấn dưới đây, với một số chi tiết rời ra cho ngắn gọn:
SELECT f.faultcode, f.downloadtimeid, d.downloadtime, count(*) as faultcount
FROM download_time d
LEFT OUTER JOIN fs_fault f ON f.downloadtimeid = d.id
AND f.faultcode IN (1000,1100)
AND f.statusid IN(2, 4)
WHERE (d.downloadtime BETWEEN '04/11/2011' AND '05/01/2012')
AND d.bunoid = 166501
GROUP BY d.bunoid, f.downloadtimeid, d.downloadtime, f.faultcode
Ngày hôm sau, tôi đã chỉnh sửa để hiển thị các câu trả lời. Tất cả các câu trả lời đều gần gũi và có các yếu tố hỗ trợ khác nhau. Tuy nhiên, câu trả lời của JayC là gần nhất. Đây là SQL thức, có sự thay đổi duy nhất là mệnh đề WHERE lấy lỗi mã trong tuyên bố:
SELECT f.faultcode, f.downloadtimeid, d.downloadtime, count(*) as faultcount
FROM download_time d
RIGHT OUTER JOIN fs_fault f ON f.downloadtimeid = d.id
AND f.statusid IN(2, 4)
AND d.downloadtime BETWEEN '04/11/2011' AND '05/01/2012'
AND d.bunoid = 166501
WHERE f.faultcode IN (1000,1100)
GROUP BY d.bunoid, f.downloadtimeid, d.downloadtime, f.faultcode
Cảm ơn, tất cả sự giúp đỡ của bạn! Yêu trang web này!
Bạn đã phân tích dữ liệu của mình chưa? Tôi nghi ngờ nó là vấn đề trong PostgreSQL ... Bạn có thể cung cấp cấu trúc bảng và dữ liệu mẫu trong [SQL Fiddle] (http://sqlfiddle.com/) không? – vyegorov
'download_time d LEFT OUTER JOIN fs_fault f ON f.downloadtimeid = d.id' có' download_time' làm bảng bên trái, không phải 'fs_fault'. Điều kiện kết nối không liên quan gì đến bảng nào là trái hay phải trong phép nối. – JayC