Tengo una consulta que devuelve promedio (precio)PostgreSQL devolver 0 si el valor devuelto es nulo
select avg(price)
from(
select *, cume_dist() OVER (ORDER BY price desc) from web_price_scan
where listing_Type='AARM'
and u_kbalikepartnumbers_id = 1000307
and (EXTRACT(Day FROM (Now()-dateEnded)))*24 < 48
and price>(select avg(price)* 0.50
from(select *, cume_dist() OVER (ORDER BY price desc)
from web_price_scan
where listing_Type='AARM'
and u_kbalikepartnumbers_id = 1000307
and (EXTRACT(Day FROM (Now()-dateEnded)))*24 < 48
)g
where cume_dist < 0.50
)
and price<(select avg(price)*2
from(select *, cume_dist() OVER (ORDER BY price desc)
from web_price_scan
where listing_Type='AARM'
and u_kbalikepartnumbers_id = 1000307
and (EXTRACT(Day FROM (Now()-dateEnded)))*24 < 48
)d
where cume_dist < 0.50)
)s
having count(*) > 5
cómo hacerlo volver 0 si ningún valor está disponible?
¿Estás seguro de que tu consulta está bien formada? –
@LucM: No puede ser una consulta bien formada. (cláusula "having" sin una cláusula "group by".) –
todo funciona bien, excepto que a veces, cuando no se cumplen las reglas, no devuelve nada. Además, ¿cómo puedo aumentar el promedio, no creo que sea posible? ¿Cuál es el objetivo? Múltiples selecciones 'from web_price_scan' son selecciones separadas; no estoy seguro de cuál es el problema aquí? – Andrew