Estoy usando esta consulta para obtener un valor total único:
SELECT SUM(`contact_awards`.`amount`) AS amount
FROM (`contact_awards`)
WHERE
`contact_awards`.`gift_award_id` IN (1)
AND `created` BETWEEN "2013-05-05" AND "2014-04-01"
GROUP
BY `contact_awards`.`amount`
Sin embargo, cuando se ejecuta, produce dos filas que contienen amount
campo:
500
1000
¿Por qué no se ejecuta una sola fila con suma 1500
?
Gracias por tu ayuda
Respuestas
3 para la respuesta № 1eliminar el GROUP BY
cláusula,
SELECT SUM(contact_awards.amount) AS amount
FROM contact_awards
WHERE contact_awards.gift_award_id IN (1)
AND created BETWEEN "2013-05-05" AND "2014-04-01"
La razón por la que está obteniendo dos registros es porque hay dos valores diferentes de contact_awards.amount
siendo agrupados.
2 para la respuesta № 2
Cuando usas group by
, los resultados van a estar separados por su cláusula de agrupación. Si desea que se resuma una sola fila, simplemente elimine el group by
al final de su consulta.