
現在我是根據vid等于4查詢分組ANSWERAD查詢陳述句為
select count( answerad ) , answerad
from it_plan
where vid =4
group by answerad
得到的結果為
骨干網路, 15
骨干網路,接入網路, 3
骨干網路,接入網路,用戶端 , 28
現在的要求是查詢結果為
骨干網路, 46
接入網路, 31
用戶端, 28
求大神指教
uj5u.com熱心網友回復:
select (select count(*) from it_plan where vid=a.vid and answerad like concat(a.answerad,'%')) , answerad
from it_plan as a
where a.vid =4
group by answerad;
uj5u.com熱心網友回復:
先創建一個輔助表,類似:
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.num
FROM
(
SELECT '骨干網路,' n,15 num UNION ALL
SELECT '骨干網路,接入網路,', 3 UNION ALL
SELECT '骨干網路,接入網路,用戶端,',28
)s
JOIN 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
uj5u.com熱心網友回復:
上面的代碼,要一個一個運行,先運行建表,然后再 往里面插入資料,最后在運行那個查詢:
uj5u.com熱心網友回復:
select sum(case when answer_AD like '%骨干網路%' then 1 else 0) s1 ,sum(case when answer_AD like '%接入網路%' then 1 else 0) s2,
sum(case when answer_AD like '%配置故障%' then 1 else 0) s3 from it_plain where vid=4;
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/78232.html
標籤:MySQL
上一篇:Datastage里JDBC Connector里的Enable quoted identifiers是做什么用的
