Tôi có một số bài đăng được lưu vào bảng InnoDB trên MySQL. Bảng có các cột "id", "date", "user", "content". Tôi muốn thực hiện một số đồ thị thống kê, vì vậy tôi đã kết thúc bằng cách sử dụng truy vấn sau đây để có được số lượng bài mỗi giờ của ngày hôm qua:Bài đăng trung bình mỗi giờ trên MySQL?
SELECT HOUR(FROM_UNIXTIME(`date`)) AS `hour`, COUNT(date) from fb_posts
WHERE DATE(FROM_UNIXTIME(`date`)) = CURDATE() - INTERVAL 1 DAY GROUP BY hour
này kết quả đầu ra các dữ liệu sau:
tôi có thể chỉnh sửa truy vấn này để nhận được bất kỳ ngày nào tôi muốn. Nhưng những gì tôi muốn bây giờ là AVERAGE của mỗi giờ mỗi ngày, để nếu vào Ngày 1 vào lúc 00 giờ tôi có 20 bài đăng và vào Ngày 2 lúc 00 giờ tôi có 40, tôi muốn đầu ra là "30". Tôi cũng muốn có thể chọn thời gian ngày nếu có thể.
Cảm ơn trước!
tại sao bạn thêm "s" sau truy vấn phụ (...)? –
Đó là bí danh cho truy vấn phụ, được yêu cầu trong MySQL để tránh lỗi này: 'ERROR 1248 (42000): Mỗi bảng dẫn xuất phải có bí danh riêng của nó'. Bạn có thể tiết lộ nhiều hơn nếu bạn muốn và sử dụng một cái gì đó như 'như sub_query'. –
Ồ, tôi hiểu rồi. Mặc dù giải pháp Linoff rất giống nhau, đây là giải pháp giúp tôi hiểu nhiều hơn về SQL. Cảm ơn! –