сгруппировать по столбцу JSON, содержащему массив - PullRequest
0 голосов
/ 21 октября 2018

У меня есть следующая таблица:

Table

, которая содержит эти данные:

data

Как сгруппировать элементы массива в столбце JSON?и получите этот результат:

Expected Result

Ответы [ 2 ]

0 голосов
/ 21 октября 2018

Если вы не можете использовать 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
0 голосов
/ 21 октября 2018

Вы можете попытаться использовать OPENJSON с CROSS APPLY, чтобы сделать это.

SELECT
    col1,
     UserID
FROM T t1
CROSS APPLY
    OPENJSON(t1.Roles)
    WITH
        (
            col1 varchar(50) N'$'
        ) AS a

sqlfiddle

...