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

Nhóm theo sẽ trả về 0 khi nhóm theo giờ. làm như thế nào?

Bạn sẽ cần một bảng chứa 24 giờ, sau đó JOIN với nó. Nếu bạn không thể tạo bảng, thì bạn có thể tạo bảng bên trong truy vấn của mình. Xem bản trình diễn này .

SELECT a.hr, IFNULL(b.hourCount, 0) hourCount
FROM 
  (SELECT 1 AS hr
  UNION ALL
  SELECT 2
  UNION ALL
  SELECT 3
  UNION ALL
  SELECT 4
  UNION ALL
  SELECT 5
  UNION ALL
  SELECT 6
  UNION ALL
  SELECT 7
  UNION ALL
  SELECT 8
  UNION ALL
  SELECT 9
  UNION ALL
  SELECT 10
  UNION ALL
  SELECT 11
  UNION ALL
  SELECT 12
  UNION ALL
  SELECT 13
  UNION ALL
  SELECT 14
  UNION ALL
  SELECT 15
  UNION ALL
  SELECT 16
  UNION ALL
  SELECT 17
  UNION ALL
  SELECT 18
  UNION ALL
  SELECT 19
  UNION ALL
  SELECT 20
  UNION ALL
  SELECT 21
  UNION ALL
  SELECT 22
  UNION ALL
  SELECT 23
  UNION ALL
  SELECT 0) a
LEFT JOIN
  (SELECT COUNT(id) AS hourCount, HOUR(date) AS hr
   FROM `testing`
   GROUP BY HOUR(date)) b ON b.hr = a.hr


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP's in_array so với MySQL SELECT

  2. ngừng chèn dữ liệu vào cơ sở dữ liệu khi làm mới trang

  3. Laravel sử dụng mệnh đề where trên phương thức withCount

  4. Symfony / PHP - Cách tốt nhất để lưu trữ giá trị đơn lẻ

  5. Acquire_lock () không hoạt động. Bot vẫn gửi yêu cầu nhanh chóng. PHP + AJAX