0

queriesイカログのインキャッシュとアウトキャッシュを知っているのは2つあります

これは私の最初のクエリです

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

これは私の2番目のクエリです

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

query2番目を1番目に分割したいだけですquery

誰かがこの問題を解決するのを手伝ってくれますか?

4

1 に答える 1

0

最も簡単な解決策: URL 部分文字列を使用して 2 つのクエリを結合すると、比率を計算できます。

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

パーセンテージ計算のためにデータを「準備」するサブセレクトが 1 つだけの代替ソリューション:

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
于 2012-08-26T19:26:53.027 に答える