私のSQLはロールを持つユーザーIDのリストを返します。ポイントはすべてのロール(グループ)を1行に連結することです。現在のところ、すべてを返しますが、ユーザーごとに1つのエントリ、基本的にはそのユーザーの最大rn(行番号)を持つユーザーあたりのエントリを返すだけです。行数が最大の行を返す方法は?
SELECT
IT_ID,
SUBSTR (SYS_CONNECT_BY_PATH (grp , ','), 2) GROUPS
FROM (
SELECT
U.IT_ID,
LAST_NAME,
BFIRST_NAME,
GRP,
ROW_NUMBER() OVER (partition by u.it_id ORDER BY U.IT_ID) rn,
COUNT(*) OVER() cnt
FROM ECG_IT_USERS U
JOIN SECUREGROUPS G ON U.IT_ID = G.IT_ID)
START WITH rn = 1
CONNECT BY rn = PRIOR rn + 1 and it_id = prior it_id
Group by it_id
これは戻します
IT_ID GROUPS
afz23 ADMIN
afz23 ADMIN, QA
klf44 USER
klf44 USER, BUSINESS
を私は各IT_ID
パーティション上行数の最大値を算出する別の分析機能を追加
IT_ID GROUPS
afz23 ADMIN, QA
klf44 USER, BUSINESS