如何按群組連接多行字串?你好,
我有一個產品清單(> 100),每個產品都有不同的產品代碼。 我想建立新列“產品代碼範圍”,它將每個產品的產品代碼連接起來,如下例所示。 如何編寫可以完成此任務的 JSL 程式碼?

自動化和腳本編寫資料混合與清理回覆:如何按群組連接多行字串?吉姆.
太好了。謝謝。
我今天學到了新東西
回覆:如何按群組連接多行字串?雅爾莫,
謝謝。 提供的所有解決方案都很棒。
這將對我的學習有所幫助。
回覆:如何按群組連接多行字串?這是另一種方法,使用 Get RowsWhere()
New Column( "PRC",
character,
set each value(
theProduct = :Product[Row()];
Concat Items(
:Product Code[Current Data Table() << get rows where( :Product == theProduct )],
"/"
);
)
);

回覆:如何按群組連接多行字串?我想到了另一個選項,它不需要任何腳本編寫(但可以輕鬆編寫腳本/JMP 主要可以編寫腳本)(請注意,使用此方法,順序很可能會改變)。
1. 拆分原始數據

2. 選取所有以 P 開頭的列,然後使用 Cols/Combine Columns 建立新列

3. 將新表與新組合列連接到原始數據

4、結果:

回覆:如何按群組連接多行字串?其他選項可能是建立關聯數組,其中產品作為鍵,列表中的產品代碼作為值,然後用它填入新列。 由於 For Each,這需要 JMP16,但如果需要,可以用 For-loop 替換
Names Default To Here(1);
dt = Current Data Table();
aa = Associative Array(:Product << get values);
For Each({{key, value}}, aa,
aa[key] = dt[Loc(dt[0, "Product"], key), "Product Code"];
);
dt << New Column("Product Code Range", Character, Nominal, << Set Each Value(
Concat Items(aa[:Product], "/");
));回覆:如何按群組連接多行字串?我寫了一個外掛可以幫助解決這個問題群組清單標籤列。 它使用sql-query來執行LISTAGG操作。 您可以安裝插件並從那裡獲取程式碼。 基本想法是這樣的:
Names Default To Here(1);
dt = Current Data Table();
custom_sql = Eval Insert(
"\[SELECT Product, GROUP_CONCAT(DISTINCT CAST("Product Code" as TEXT)) as "Product Code Range"
FROM t1
GROUP BY Product
]\");
dt_concat = Query(
Table(dt, "t1"),
custom_sql
);

然後將 dt_concat 連接回原始表
JSL 語法參考 > 可用於 JMP 查詢的 SQL 函數 > 聚合 SQL 函數