Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Truy vấn MySQL để đạt được số lượng mỗi giờ

bạn có thể giải quyết vấn đề này bằng cách tạo một bảng chứa 24 giá trị cho hàng giờ (00:00, 01:00, v.v.) và thực hiện kết hợp trái (hoặc phải) với nó và bảng của bạn cho phép giá trị rỗng, do đó bạn sẽ có tất cả 24 hàng ngay cả khi bảng của bạn hoàn toàn chứa 0 hàng, sau đó nhóm theo sẽ hoạt động tốt.

Đừng quên cắt ngắn mọi thứ trừ hàng giờ kể từ bảng của bạn khi bạn thực hiện tham gia để kết quả của func bạn gọi và thực hiện join on có thể bằng giá trị của bảng trợ giúp này.

bạn có thể sử dụng truy vấn sau để thực hiện công việc sau khi điền vào bảng testtime với 24 giá trị test_time

select test_time,sum(sign(coalesce(idFromYourTable,0))) as count from testtime 
left join yourTable on test_time=hour(yourTableTime) 
group by test_time

Điều này sẽ cung cấp số 0 là số đếm nếu không có giá trị nào khớp với hàng từ bảng kiểm tra, trong khi có số đếm (*) sẽ cung cấp 24 hàng có 1s thay vì 0 ngay cả khi bảng của bạn trống, cũng như nếu chỉ có 1 hàng trong bảng của bạn. Không thể phân biệt sự khác biệt giữa 0 hàng vì kết quả sẽ giống nhau khi theo sau 2 hàng khác nhau

nguyên nhân sẽ cung cấp cùng một số lượng hàng kết quả bằng 1, trong khi kỹ thuật tính tổng xử lý các hàng này khác nhau



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Độ dài chỉ mục varchar của MySQL

  2. mysql còn lại tham gia tổng hai bảng với cuộn lên

  3. thu thập thông tin một trang html bằng php?

  4. Làm cách nào để thoát các ký tự đặc biệt trong MySQL?

  5. Nhận tất cả các ký tự trước khoảng trắng trong MySQL