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

tổng hai hàng và sắp xếp theo ngày / tổng số

Đối với điều này, chúng tôi cần lọc dữ liệu trên lựa chọn và không trên kết hợp.

Loại bỏ điều kiện này:

AND (month(d.date), year(d.date)) = (month(CURDATE()), year(CURDATE()))

và thêm cái này vào lựa chọn:

SUM (CASE WHEN (month(d.date), year(d.date)) = (month(CURDATE()), year(CURDATE())) THEN 1 ELSE 0 END) as monthly

Chỉnh sửa:

toàn bộ truy vấn:

SELECT users.id, users.username, 
  COALESCE(sum(CASE WHEN (month(donations.date), year(donations.date)) = (month(CURDATE()), year(CURDATE())) THEN donations.amount ELSE 0 END), 0) monthly_sum, 
  COALESCE(sum(CASE WHEN (month(donations.date), year(donations.date)) = (month(CURDATE()), year(CURDATE())) THEN 1 ELSE 0 END), 0) monthly_amount, 

  COALESCE(sum(donations.amount), 0) total_sum, 
  count(*) total_amount

from users
left join donations
  on donations.uid = users.id
group by users.id, users.username

http://sqlfiddle.com/#!2/20a974/20/0



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chèn / Cập nhật ngày ngẫu nhiên trong MySQL

  2. Tôi dường như không thể kết nối trang PHP của mình với cơ sở dữ liệu và máy chủ thử nghiệm SQL của mình

  3. Phiên bản MySQL nào tương thích với phiên bản Airflow 1.10?

  4. Trình đơn thả xuống có dân cư năng động; $ _POST trả lại lỗi

  5. So sánh các hàng trong cùng một bảng trong mysql