按包含数组的 JSON 列进行分组

3
我有以下表格:

Table

其中包含以下数据:

Data

如何按照我的JSON列中的数组项进行分组并获得此结果:

Expected Result

2个回答

1
你可以尝试使用 OPENJSONCROSS APPLY 来实现它。
SELECT
    col1,
     UserID
FROM T t1
CROSS APPLY
    OPENJSON(t1.Roles)
    WITH
        (
            col1 varchar(50) N'$'
        ) AS a

sqlfiddle

的意思是程序相关的。

1
如果您无法使用OPENJSON,这里有一个替代方案。
Select
    aRole, COUNT(*) as cnt
From (

    Select
        a.ID
        ,b.Items as aRole
    From 
        (Select *
            ,replace(replace(replace(Roles,'[',''),']',''),'"','') as Rolesx
         From JSONgroup) a
    Cross Apply dbo.Split(a.Rolesx, ',') b
) c
 group by aRole

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接