如何拆分字符串并按拆分的token进行分组?我想要得到分组拆分的令牌的每个计数。
我有一个varchar列,它存储了一个可以被',‘拆分的字符串。下面是该列的行数据。(列名为LogData)
[LogData]
1,2,3,4
1,3,1,9
2,1,3
6,2然后我想像下面这样显示(选择)。
[token] [count]
1 : 4
2 : 3
3 : 3
4 : 1
6 : 1
9 : 1如果可能的话,我可以得到一个关于这个问题的答案并解释一下吗?(我对db不在行)
发布于 2018-01-23 14:32:31
使用并调整来自undefined_variable的注释,正确的查询如下所示:
SELECT value,COUNT(*) FROM
(SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(t0.logdata, ',', n.n), ',', -1) value
FROM t0 CROSS JOIN
(
SELECT a.N + b.N * 10 + 1 n
FROM
(SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) a
,(SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) b
ORDER BY n
) n
WHERE n.n <= 1 + (LENGTH(t0.logdata) - LENGTH(REPLACE(t0.logdata, ',', '')))
ORDER BY value) nt0 GROUP BY valuehttps://stackoverflow.com/questions/48376623
复制相似问题