2012-08-26 157 views
0

我有兩個queries在明知進出魷魚日誌合併子查詢

的高速緩存,這是我第一次查詢

select SUBSTRING_INDEX(url, '/', 3),count(resultstatuscode) from squid where resultstatuscode like '%MISS%' group by SUBSTRING_INDEX(url, '/', 3); 

,這一個是我的第二個查詢

select SUBSTRING_INDEX(url, '/', 3),count(resultstatuscode) from squid group by SUBSTRING_INDEX(url, '/', 3); 

我只想分我的第二query第一query

可以這樣我的人幫我解決這個問題?

+0

我只是這樣的事情發生1stquery/2ndquery ......這兩個查詢的工作正常,但問題是當我結合這兩個結果是錯誤1242(21000):子查詢返回超過1行 –

回答

0

最簡單的解決方案:使用url substring加入兩個查詢,然後您可以計算比率。

SELECT a.url, a.codecount/b.codecount AS percentage 
FROM 
(SELECT SUBSTRING_INDEX(url, '/', 3) AS url, 
     COUNT(resultstatuscode) AS codecount 
FROM squid 
WHERE resultstatuscode LIKE '%MISS%' 
GROUP BY SUBSTRING_INDEX(url, '/', 3)) a 
JOIN 
(SELECT SUBSTRING_INDEX(url, '/', 3) AS url, 
     COUNT(resultstatuscode) AS codecount 
FROM squid 
GROUP BY SUBSTRING_INDEX(url, '/', 3)) b 
ON a.url = b.url 

只有一個子查詢的是「準備」中的數據的百分比計算的替代解決方案:

SELECT t.url, SUM(t.miss)/SUM(t.total) AS percentage 
FROM (SELECT SUBSTRING_INDEX(url, '/', 3) AS url, 
     CASE WHEN resultstatuscode LIKE '%MISS%' THEN 1 ELSE 0 END AS miss 
     1 AS total) t 
GROUP BY t.url 
+0

謝謝你這個人..我真的很感激你的幫助! –