2010-09-24 31 views
9

La pregunta es simple: quiero hacer:Cómo SUM() varias filas de subconsulta en MySQL?

SELECCIONAR SUM ((... una sub consulta que devuelve varias filas con un único valor int ...)) como total;

¿Cómo podría hacer eso? Me sale un error al decir que la subconsulta devuelve más de una fila. Necesito tenerlo en una subconsulta.

Respuesta

1

¿No podría simplemente hacer la agregación dentro de la subconsulta?

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

(No probado!)

+0

No porque estoy usando un GROUP BY y, por lo tanto, suma demasiadas filas. – Tower

12

Aquí es un enfoque que se debe trabajar para usted:

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

Y aquí es un ejemplo ficticio específica para mostrar el enfoque en la acción:

select sum(int_val) 
from (
    select 1 as int_val 
    union 
    select 2 as int_val 
    union 
    select 3 as int_val 
) as sub; 
Cuestiones relacionadas