【发布时间】:2021-06-17 01:58:38
【问题描述】:
我有一张如下所示的表格:
| ITE_ITEM_ID | SIT_SITE_ID | INVENTORY_ID | ITE_VARIATION_ID | STOCK_EAN | STOCK_FULFILLMENT_ACTIVE |
|---|---|---|---|---|---|
| 16302514 | B | WAE6496 | 62101793519 | 79098642 | 1 |
| 6210113 | M | GKVU072 | [object Object] | NULL | 1 |
| 16021657 | M | YHQG635 | 60513515602 | NULL | 1 |
| 8449326 | A | ZZRV751 | 52555136800 | NULL | 1 |
| 1154338160 | B | VXWP565 | NULL | NULL | 0 |
| 559568 | M | GYPZ201 | 32325593678 | NULL | 1 |
| 13255753 | B | PH63355 | 70388916917 | NULL | 1 |
| 7614543 | M | XOQO412 | 51698700618 | NULL | 1 |
我正在尝试获取不同的ITE_VARIATION_ID,它们共享相同的STOCK_EAN 并且计数> 1
我目前正在通过拆分两个语句来做到这一点:
create multiset volatile table eans_plus as (
SELECT STOCK_EAN, count(*) as count_ean
FROM my_table
group by 1
having count_ean > 1
) with data primary index (stock_ean) on commit preserve rows;
SELECT a.STOCK_EAN, a.ITE_VARIATION_ID
from my_table a inner join eans_plus b on a.stock_ean = b.stock_ean
;
但是这需要一段时间来执行(>140 秒),因为表非常大,我想知道是否有更有效的方法来执行此操作,或者通过避免执行两个查询或添加索引。我在 Teradata 上使用 alation
【问题讨论】: