Tôi có hai bảng sau đây (với một số dữ liệu ngay mẫu)Merge truy vấn vào một truy vấn
GỖ:
ID | SETID | DATE ======================== 1 | 1 | 2010-02-25 2 | 2 | 2010-02-25 3 | 1 | 2010-02-26 4 | 2 | 2010-02-26 5 | 1 | 2010-02-27 6 | 2 | 2010-02-27 7 | 1 | 2010-02-28 8 | 2 | 2010-02-28 9 | 1 | 2010-03-01
STATS:
ID | OBJECTID | FREQUENCY | STARTID | ENDID ============================================= 1 | 1 | 0.5 | 1 | 5 2 | 2 | 0.6 | 1 | 5 3 | 3 | 0.02 | 1 | 5 4 | 4 | 0.6 | 2 | 6 5 | 5 | 0.6 | 2 | 6 6 | 6 | 0.4 | 2 | 6 7 | 1 | 0.35 | 3 | 7 8 | 2 | 0.6 | 3 | 7 9 | 3 | 0.03 | 3 | 7 10 | 4 | 0.6 | 4 | 8 11 | 5 | 0.6 | 4 | 8 7 | 1 | 0.45 | 5 | 9 8 | 2 | 0.6 | 5 | 9 9 | 3 | 0.02 | 5 | 9
Mỗi ngày các bản ghi mới được phân tích trên khác nhau bộ đối tượng và được lưu trữ trong bảng LOGS. Trong số các quy trình khác, một số thống kê được tính toán trên các đối tượng có trong các bộ này và kết quả được lưu trữ trong bảng STATS. Các thống kê này được tính toán thông qua một số nhật ký (được xác định bởi các cột STARTID và ENDID).
Vì vậy, truy vấn SQL nào có thể cung cấp cho tôi số liệu thống kê được tính toán mới nhất cho tất cả các đối tượng có ngày đăng nhập tương ứng.
Trong ví dụ được đưa ra, các hàng kết quả sẽ là:
OBJECTID | SETID | FREQUENCY | STARTDATE | ENDDATE ====================================================== 1 | 1 | 0.45 | 2010-02-27 | 2010-03-01 2 | 1 | 0.6 | 2010-02-27 | 2010-03-01 3 | 1 | 0.02 | 2010-02-27 | 2010-03-01 4 | 2 | 0.6 | 2010-02-26 | 2010-02-28 5 | 2 | 0.6 | 2010-02-26 | 2010-02-28
Vì vậy, các số liệu thống kê mới nhất cho bộ 1 được tính toán với các bản ghi từ 27 tháng 2 đến ngày 1 tháng Ba, trong khi số liệu thống kê cho set 2 được tính từ ngày 26 tháng 2 tới feb 28. đối tượng 6 không nằm trong hàng kết quả vì không có chỉ số nào trong khoảng thời gian cuối cùng.
Điều cuối cùng, tôi sử dụng MySQL.
Bất kỳ ý tưởng nào?
+1 cho câu hỏi được xây dựng rõ ràng với dữ liệu mẫu tốt. –
Có phải 0,35 đối với đối tượng 4, 5 là lỗi đánh máy không? (nó phải là 0,6?) – Patrick