Я выполнил три очень похожих запроса в оттенке, которые используют hiveql, два из них имеют условие (противоположные элементы). Я вообще не понимаю результатов:
select
distinct
product_id,
price,
rang,
if(rang=1, 1, 0)
from (
select
distinct
product_id,
price,
row_number() OVER (PARTITION BY product_id order by col1 desc nulls last, col2 desc nulls last) rang
from offer.offer_price
) op
==============> вернуть 1 строку:
product_id price rang c4
prod_1 12.99 1 1
=== ================================================== ===
select
distinct
product_id,
price,
rang,
if(rang=1, 1, 0)
from (
select
distinct
product_id,
price,
row_number() OVER (PARTITION BY product_id order by col1 desc nulls last, col2 desc nulls last) rang
from offer.offer_price
) op
where if(rang=1, 1, 0)=1
==============> вернуть 0 строку
select
distinct
product_id,
price,
rang,
if(rang=1, 1, 0)
from (
select
distinct
product_id,
price,
row_number() OVER (PARTITION BY product_id order by col1 desc nulls last, col2 desc nulls last) rang
from offer.offer_price
) op
where if(rang=1, 1, 0)=0
=========== ===> вернуть 1 строку:
product_id price rang c4
prod_1 12.99 1 1
================================= =======================
Почему третий запрос возвращает тот же результат, что и первый запрос, тогда как rang = 1? Кто-нибудь знает почему?
Большое спасибо.
Эмиль ie