Ошибка SQL / Redshift - фильтрация только первого вхождения значения - PullRequest
0 голосов
/ 18 сентября 2018

Я пытаюсь вернуть первое вхождение значения, используя приведенный ниже SQL-скрипт:

SELECT a.store_id, b.store_name, c.prod_id FROM
  (
select a.store_id as sh, b.store_name, c.prod_id
count(1) ct,row_number() over  (partition by store_id order by store_id 
desc) row_num
from stores a, store_details b , product c
where a.id=b.store_id  and a.prod_id = c.id and  b.id = 101
group by a.store_id as sh, b.store_name, c.prod_id,
)t
WHERE row_num = 1;

Я получаю сообщение об ошибке

Недопустимая операция: отношение "a" делаетне существует .

Я использую Redshift DB.Может ли кто-нибудь помочь в этом.Спасибо ..

1 Ответ

0 голосов
/ 18 сентября 2018

Вы выбираете из подзапроса, и псевдоним для него "T", вы не можете ссылаться на псевдоним подзапроса извне подзапроса.

SELECT t.store_id, T.store_name, T.prod_id 
FROM
  (
   select a.store_id as sh, b.store_name, c.prod_id
   count(1) ct,row_number() over  (partition by store_id order by store_id 
   desc) row_num
   from stores a, store_details b , product c
   where a.id=b.store_id  and a.prod_id = c.id and  b.id = 101
   group by a.store_id as sh, b.store_name, c.prod_id,
)T
WHERE t.row_num = 1;
...