现在我是根据vid等于4查询分组ANSWERAD查询语句为
select count( answerad ) , answerad
from it_plan
where vid =4
group by answerad得到的结果为
骨干网络, 15
骨干网络,接入网络, 3
骨干网络,接入网络,用户端 , 28现在的要求是查询结果为
骨干网络, 46
接入网络, 31
用户端, 28
求大神指教
select count( answerad ) , answerad
from it_plan
where vid =4
group by answerad得到的结果为
骨干网络, 15
骨干网络,接入网络, 3
骨干网络,接入网络,用户端 , 28现在的要求是查询结果为
骨干网络, 46
接入网络, 31
用户端, 28
求大神指教
-- 创建数字辅助表
CREATE TABLE Temp_Num ( xh INT PRIMARY KEY );
-- 插入数据
SET @i = 0;
INSERT INTO Temp_Num(xh) -- 写入数字辅助表
SELECT @i := @i+1
FROM information_schema.COLLATIONS
-- 查询
SELECT t.n,SUM(num) AS num
FROM
(
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(LEFT(s.n,CHAR_LENGTH(s.n)-1),',',l.xh),',',-1) AS n,
s.numFROM
(
SELECT '骨干网络,' n,15 num UNION ALL
SELECT '骨干网络,接入网络,', 3 UNION ALL
SELECT '骨干网络,接入网络,用户端,',28
)sJOIN Temp_Num l ON((l.xh <= ((LENGTH(s.n)-1 - LENGTH(REPLACE(s.n,',',''))) + 1)))
)t
GROUP BY t.n
ORDER BY SUM(num) DESC