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

Các hàm MySQL tổng hợp có luôn trả về một hàng không?

Bạn cần sử dụng GROUP BY như vậy để có được kết quả mong muốn của bạn:

SELECT
order_id,
part_id,
SUM(cost) AS total
FROM orders 
WHERE order_date BETWEEN xxx AND yyy
GROUP BY order_id, part_id

Điều này sẽ nhóm kết quả của bạn. Lưu ý rằng vì tôi giả sử rằng order_idpart_id là một PK ghép, SUM(cost) trong phần trên có thể sẽ là = cost (vì bạn nhóm theo sự kết hợp của hai trường được đảm bảo là duy nhất. Truy vấn con tương quan bên dưới sẽ khắc phục hạn chế này).

Mọi hàng không tổng hợp được tìm nạp cần phải được chỉ định trong GROUP BY hàng.

Để biết thêm thông tin, bạn có thể đọc hướng dẫn về GROUP BY tại đây:

CHỈNH SỬA: Nếu bạn muốn sử dụng một cột vừa tổng hợp vừa không tổng hợp hoặc nếu bạn cần tách các nhóm của mình, bạn sẽ cần sử dụng một truy vấn con như sau:

SELECT
or1.order_id,
or1.cost,
or1.part_id,
(
  SELECT SUM(cost)
  FROM orders or2
  WHERE or1.order_id = or2.order_id
  GROUP BY or2.order_id
) AS total
FROM orders or1
WHERE or1.order_date BETWEEN xxx AND yyy



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tìm kiếm bảng mysqli với biểu mẫu và kết quả hiển thị

  2. Làm cách nào để xóa tất cả các ký tự số không phải chữ cái khỏi một chuỗi trong MySQL?

  3. Cách đúng để khử trùng đầu vào trong MySQL bằng PDO

  4. PDO's lastInsertId cho MySQL một điều kiện cuộc đua?

  5. Sự khác biệt giữa -> và ::trong PHP MySQLi OOP