Я пытаюсь создать запрос, в котором по магазину указано максимальное количество посещений магазина клиентом

#sql #teradata

#sql #teradata

Вопрос:

Я пытаюсь связать item_scan_fact, store_dimension и member_dimension. Это то, что у меня есть. Я не могу понять, почему он не работает:

 DATABASE UA_SAMSCLUB_STAR;
select 
store_key, member_key, max(visitnum)
from 
item_scan_fact
where hello, store_key, member_key IN 
(select item_scan_fact.store_key, item_scan_fact.member_key, Count (*) as visitnum
from 
item_scan_fact
group by 
store_key, member_key)
group by 
store_key, member_key;
  

Комментарии:

1. Не знаю, связано ли это с тем, что в вашем предложении where вы запрашиваете hello, store_key, ключ участника, но в вашем подзапросе вы запрашиваете только два элемента…

2. это была ошибка ввода в вопросе. В моем коде вместо hello у меня везде есть visitnum

3. where hello, store_key, member_key IN (select item_scan_fact.store_key, item_scan_fact.member_key, Count (*) as visitnum не складывается. Это все та же опечатка. Если да, пожалуйста, исправьте это. Пожалуйста, также укажите примеры данных для этих таблиц и желаемые результаты. Как есть, это всего лишь оператор SQL, который может быть или не быть write. Это синтаксически правильно … fwiw.

4. не работает — это не фактическое сообщение об ошибке. Основываясь на вашем запутанном описании, вы можете захотеть select item_scan_fact.store_key, item_scan_fact.member_key, Count (*) as visitnum from item_scan_fact group by store_key, member_key QUALIFY RANK() OVER (PARTITION BY store_key ORDER BY visitnum DESC) = 1