Tengo una consulta que devuelve avg (price)
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 hacer que devuelva 0 si no hay ningún valor disponible?
from web_price_scanson selecciones independientes; ¿No estás seguro de cuál es el problema aquí?
havingcláusula sin un group by(que por defecto es un solo grupo). Actúa como una wherecláusula sobre resultados agregados. En este caso, las filas solo se devuelven si la subconsulta de primer nivel devuelve más de 5 filas.