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

Truy vấn SQL để lấy tổng phụ của một số hàng

Bạn có thể tổng hợp bằng cách sử dụng CASE biểu thức, tạo thành một nhóm bằng cách sử dụng id nếu manager_id bằng 0, nếu không thì sử dụng manager_id . Phần còn lại của logic tương tự như những gì bạn đã có.

SELECT
    CASE WHEN manager_id = 0 THEN id ELSE manager_id END AS manager_id,
    MAX(CASE WHEN is_manager=1 THEN name END) AS name,
    SUM(no_of_items) AS total_items,
    SUM(revenue) AS total_revenue
FROM items_revenue
GROUP BY
    CASE WHEN manager_id = 0 THEN id ELSE manager_id END;

Bản trình diễn

Một lưu ý nhỏ:Tôi đã sử dụng một hàm trong GROUP BY mệnh đề này không tuân thủ ANSI và do đó có thể không chạy ở mọi nơi. Để khắc phục điều này, trước tiên chúng tôi có thể truy vấn phụ bảng của bạn để tạo các nhóm người quản lý hiệu quả. Sau đó, sử dụng câu trả lời ở trên của tôi đối với kết quả trung gian này.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chuyển mật khẩu cho mysql_config_editor bằng cách sử dụng biến trong shell

  2. Truy cập cơ sở dữ liệu mysql vùng chứa docker

  3. Memcache - lưu trữ kết quả mysql

  4. Cách khắc phục java.sql.SQLException:Quá nhiều kết nối ngoại lệ?

  5. Làm thế nào để chuyển đổi định dạng ngày csv sang thành mysql db