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

Bản sao liên quan đến SUM, LEFT JOIN và GROUP BY

Vì vậy, bước đầu tiên để xem điều gì đang xảy ra là xóa SUM và chỉ chọn số tiền giao dịch và số tiền yêu cầu. Bằng cách đó, bạn có thể xem dữ liệu nào đang được trả về. Bạn sẽ thấy rằng lần tham gia vào A / 2007 sẽ có số tiền giao dịch gấp đôi, vì nó nối mỗi hàng với bảng xác nhận quyền sở hữu.

Một giải pháp là sử dụng các truy vấn con, như bạn đã nói, để thực hiện các SUM một cách riêng biệt trước khi tham gia.

SELECT 
   Transactions.Customer,
   Transactions.Year,
   SumTransaction,
   SumClaim
FROM (
      select Customer, Year, sum(Transaction Amount) SumTransaction 
      from Transactions
      group by Customer, Year
   ) Transactions
   LEFT JOIN (
      select Customer, Year, sum(Claim Amount) sumClaim 
      from Claims
      group by Customer, Year
   ) Claims
   ON Claims.Customer = Transactions.Customer
      AND Transactions.Year = Claims.Year

Một giải pháp khả thi khác do các hạn chế của bạn:

SELECT 
   Transactions.Customer,
   Transactions.Year,
   SUM(Transaction Amount),
   (SELECT SUM(Claim Amount) from Claims where Claims.Customer = Transactions.Customer and Claims.Year = Transactions.Year)
FROM 
   Transactions
GROUP BY
   Customer, Year

Giải pháp khả thi thứ ba !! Cái này không yêu cầu bất kỳ truy vấn phụ nào! Hãy xem SQL Fiddle này

select
    t.Customer,
    t.Year,
    sum(distinct t.Amount),
    sum(c.Amount)
from
    Transactions t
    left join Claims c
        on  t.Customer = c.Customer
            and t.Year = c.year
group by
    t.Customer,
    t.Year


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nhận tất cả người dùng ngoại trừ quản trị viên trong mối quan hệ nhiều người

  2. Tìm thành phố trong phạm vi 'X' Kilômét (hoặc Dặm)

  3. Tăng tốc độ đếm hàng trong MySQL

  4. Di chuyển MySQL sang PostgreSQL trên AWS RDS, Phần 3

  5. Hướng dẫn MySQL Workbench - Hướng dẫn Toàn diện về Công cụ RDBMS