Сгруппировать похожие URL - PullRequest
0 голосов
/ 21 июня 2019

Я хочу получить все запросы к xmlrpc.php и wp-login.php и получить их с подстановочными знаками в заявлении.

Но это представляет проблему, поскольку не выводит данные только в две строки для xmlrpc и wp-login, но также включает URL-адреса с прикрепленным запросом. Надеясь включить в него все запрошенные URL, но объедините их так, чтобы они отображались как xmlrpc.php или wp-login.php

Я mysql n00b и играл с substr replace и group_concat, но не смог заставить его работать.

WITH 
  subq AS (
    SELECT url, COUNT(url) AS count
    FROM `flywheel-production.fastly_logs.ingress_logs`
    WHERE timestamp > TIMESTAMP_ADD(CURRENT_TIMESTAMP(), INTERVAL -1 DAY) 
  AND (url LIKE "/wp-login.php%" OR  url LIKE "/xmlrpc.php%")
  AND site_hash = "btmpuroizf"
    GROUP BY url
  )

SELECT 
  url,
  count,
  ROUND(count / (SELECT SUM(count) FROM subq) * 100, 2) AS percent
FROM subq
ORDER BY count DESC

Любая помощь будет высоко ценится. Спасибо!

1 Ответ

0 голосов
/ 21 июня 2019

Для BigQuery Standard SQL

Ниже скорректированный запрос должен выполнить "трюк"

#standardSQL
WITH subq AS (
  SELECT REGEXP_EXTRACT(url, r'(.*?)(?:\?|$)') url, COUNT(url) AS COUNT
  FROM `flywheel-production.fastly_logs.ingress_logs`
  WHERE timestamp > TIMESTAMP_ADD(CURRENT_TIMESTAMP(), INTERVAL -1 DAY) 
  AND (url LIKE "/wp-login.php%" OR  url LIKE "/xmlrpc.php%")
  AND site_hash = "btmpuroizf"
  GROUP BY url
)
SELECT 
  url,
  COUNT,
  ROUND(COUNT / (SELECT SUM(COUNT) FROM subq) * 100, 2) AS percent
FROM subq
ORDER BY COUNT DESC  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...