簡體   English   中英

SAP HANA SQL 查詢以查找兩列之間的所有可能組合

[英]SAP HANA SQL Query to find all possible combinations between two columns

目標是使用SAP HANA SQL創建連接兩列的所有可能組合。 第一列('100','101','102','103')的每篇文章都必須在組合結果中。

示例代碼

create table basis
(article Integer,
supplier VarChar(10) );
Insert into basis Values (100, 'A');
Insert into basis Values (101, 'A');
Insert into basis Values (101, 'B');
Insert into basis Values (101, 'C');
Insert into basis Values (102, 'D');
Insert into basis Values (103, 'B');

結果集

combination_nr;article;supplier
1;100;'A'
1;101;'A'
1;102;'D'
1;103;'B'
2;100;'A'
2;101;'B'
2;102;'D'
2;103;'B'
3;100;'A'
3;101;'C'
3;102;'D'
3;103;'B'

假設如果我們在102 中再添加一行作為“A”,那么我們的結果集將是這樣的

同樣根據下面給出的計算,現在我們有 24 個結果集

1;100;'A'
1;101;'A'
1;102;'A'
1;103;'B'

2;100;'A'
2;101;'A'
2;102;'D'
2;103;'B'

3;100;'A'
3;101;'B'
3;102;'A'
3;103;'B'

4;100;'A'
4;101;'B'
4;102;'D'
4;103;'B'

5;100;'A'
5;101;'C'
5;102;'A'
5;103;'B'

6;100;'A'
6;101;'C'
6;102;'D'
6;103;'B'

計算:

article 100: 1 supplier ('A')
article 101: 3 suppliers ('A','B','C')
article 102: 1 supplier ('D')
article 103: 1 supplier ('B')
unique articles: 4 (100,101,102,103)
1x3x1x1 x 4 = 12 (combination rows)

怎么樣:

select article, 
       count(supplier) as nb_supplier,
       STRING_AGG(supplier,',') as list_suppliers
from (select distinct article, supplier from basis)
group by article

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM