2010-09-24 35 views
9

Câu hỏi rất đơn giản: Tôi muốn làm:Làm thế nào để SUM() nhiều hàng truy vấn con trong MySQL?

SELECT SUM ((... truy vấn con trả về nhiều hàng với một giá trị int duy nhất ...)) AS tổng;

Tôi làm như thế nào? Tôi gặp lỗi khi nói truy vấn con trả về nhiều hàng. Tôi cần phải có nó trong một truy vấn phụ.

Trả lời

1

Bạn không thể thực hiện tổng hợp trong vòng truy vấn phụ?

SELECT 
    (SELECT SUM(...) ...) AS total, 
    ... 

(chưa được kiểm tra!)

+0

Không phải vì tôi đang sử dụng GROUP BY và do đó SUMs quá nhiều hàng. – Tower

12

Dưới đây là một cách tiếp cận mà nên làm việc cho bạn:

SELECT SUM(column_alias) 
FROM (select ... as column_alias from ...) as table_alias 

Và đây là một ví dụ điển hình nộm cụ thể để cho thấy cách tiếp cận trong hành động:

select sum(int_val) 
from (
    select 1 as int_val 
    union 
    select 2 as int_val 
    union 
    select 3 as int_val 
) as sub; 
Các vấn đề liên quan