簡體   English   中英

SAP HANA功能:評估

[英]SAP HANA function: Evaluate

客戶表包含具有項目列表的客戶列表。

我們已經收到了具有排名的項目清單。 因此,我們必須通過匯總排名來找出客戶排名。

Customer ID| Items | rank 1 | 1 | 1 1 | 1 | 1 1 | 2 | 4 1 | 2 | 4 1 | 3 | 1

期望的輸出

CustomerID | rank 1 | 6

對於每個客戶,我總是很困惑。 任何幫助深表感謝!

我要添加幾個標簽,如果它們不相關,請原諒!

對於HANA,查詢將如下所示(帶有一些測試數據):

create column table "CustomerItems"
("CustomerID" nvarchar(10),
 "Items"      nvarchar(10),
 "CRank"     integer
);


insert into "CustomerItems" ("CustomerID", "Items", "CRank") values ('1', '1', 1 );
insert into "CustomerItems" ("CustomerID", "Items", "CRank") values ('1', '1', 1 );
insert into "CustomerItems" ("CustomerID", "Items", "CRank") values ('1', '2', 4 );
insert into "CustomerItems" ("CustomerID", "Items", "CRank") values ('1', '2', 4 );
insert into "CustomerItems" ("CustomerID", "Items", "CRank") values ('2', '1', 3 );
insert into "CustomerItems" ("CustomerID", "Items", "CRank") values ('2', '1', 3 );
insert into "CustomerItems" ("CustomerID", "Items", "CRank") values ('2', '3', 5 );

select "CustomerID", Sum(distinct("CRank"))
  from "CustomerItems"
  group by "CustomerID"
  order by "CustomerID"

我不會將“ Rank”用作列名。 這是一個保留字 (窗口功能),可能導致混亂。

對於MySQL,只需將create column table替換為create table並用反引號將雙引號引起來。

如果這回答了您的問題,我還將推薦一些有關SQL的入門書籍或在線教程。 如果沒有,請提供更多信息,創建表語句等。

注釋后編輯並更改測試數據:

如果要總結“客戶/項目”的不同組合的“等級”,請嘗試使用此方法(對於MySQL,請再次使用反引號代替雙引號,並且必須給子查詢提供自己的別名):

select "CustomerID", sum("CRank")
from 
(
select distinct "CustomerID", "Items", "CRank"
  from "CustomerItems"
)
  group by "CustomerID"
  order by "CustomerID"

暫無
暫無

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

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