Mam kwerendy, która zwraca AVG (cena)PostgreSQL zwraca 0 jeśli zwracana wartość jest null
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
jak zrobić to zwraca 0, jeśli wartość nie jest dostępna?
Czy jesteś pewien, że Twoje zapytanie jest dobrze sformułowane? –
@LucM: To nie może być dobrze sformułowane zapytanie. (klauzula "mająca" bez klauzuli "grupa po".) –
wszystko działa dobrze, z tym wyjątkiem, że czasami, gdy reguły nie są spełnione, nic nie zwraca. Ponadto, jak mogę gorup przeciętnie, nie sądzę, że jest to możliwe? Wiele wybiera 'from web_price_scan' to osobne selekcje; nie wiesz, co tu jest? – Andrew