[英]How do I search for instances of a sub query string in a string field in the main table - teradata?
我有一個主表(MT),其中包含一個名為Wine_Variety的字段。 填充的數據如下所示:
CUSTOMER_NUMBER|WINE_VARIETY
1001|SHIRAZ
1002|CHARDONNAY,MERLOT
1003|MERLOT,CHARDONNAY,MALBEC
1004|MALBEC,RIESLING
我已經開發了一個子查詢(SQ),它返回從交易表中提取的前五種暢銷葡萄酒的價值。 這基本上會產生一個如下所示的列表
VARIETY|QUANTITY
SHIRAZ|10000
CABERNET SAUVIGNON|9500
CABERNET MALBEC|8000
CHARDONNAY|7000
CHAMPAGNE|6000
我想找出MT中哪些客戶購買了SQ中出現的葡萄酒。
查看上面的列表,我希望查詢返回的客戶是1001-1003(含),而不是未購買前五名葡萄酒的客戶1004。
我以為可以做到這一點,但它帶有0行
sel * from MT
where MT.Wine_Variety like any
(
sel search_string from
(
sel top 5 variety, '''%'||variety||'%''' as search_string ,sum(quantity) as total_bought
from some_transaction_table
where variety is not null and variety <> ''
group by 1,2
order by 3 desc
) a
);
但是如果我嘗試以下操作,它就會起作用...
sel * from MT where MT.Wine_Variety like any ('%SHIRAZ%','%CHARDONNAY%')
有什么想法嗎?
我認為in
要簡單得多:
select mt.*
from MT
where MT.Wine_Variety in (select top 5 stt.variety
from some_transaction_table
where stt.variety is not null and stt.variety <> ''
group by stt.variety
order by sum(stt.quantity) desc
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.