Я безнадежно пытался получить следующий оператор SQL, чтобы вернуть результаты запроса, и по умолчанию 0, если нет строк, соответствующих запросу.
Это ожидаемый результат:
vol | year
-------+------
0 | 2018
Вместо этого я получаю:
vol | year
-----+------
(0 rows)
Вот выражение sql:
select coalesce(vol,0) as vol, year
from (select sum(vol) as vol, year
from schema.fact_data
join schema.period_data
on schema.fact_data.period_tag = schema.period_data.tag
join schema.product_data
on schema.fact_data.product_tag =
schema.product_data.tag
join schema.market_data
on schema.fact_data.market_tag = schema.market_data.tag
where "retailer"='MadeUpRetailer'
and "product_tag"='FakeProductTag'
and "year"='2018' group by year
) as DerivedTable;
Я знаю, что запрос работает, потому что он возвращает данные, когда есть данные.Просто не по умолчанию 0, как предполагалось ...
Любая помощь в выяснении, почему это так, будет высоко ценится!