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?
fuente
from web_price_scan
son selecciones independientes; ¿No estás seguro de cuál es el problema aquí?having
cláusula sin ungroup by
(que por defecto es un solo grupo). Actúa como unawhere
cláusula sobre resultados agregados. En este caso, las filas solo se devuelven si la subconsulta de primer nivel devuelve más de 5 filas.