Subconsulta de AQL

Utilice una subconsulta de AQL como un origen de datos al que la consulta principal hace referencia o en la que busca. Utilice la cláusula FROM o IN para refinar la consulta de AQL haciendo referencia a los datos recuperados por la subconsulta.

Una subconsulta es una consulta anidada o interna a la que la consulta principal hace referencia. La subconsulta está disponible en los formatos siguientes:

  • SELECT <campo/s> FROM (<expresión de consulta AQL>)

    Esta consulta utiliza la cláusula de FROM para buscar la salida (cursor) de la subconsulta.

  • SELECT <campo/s> FROM events WHERE <campo> IN (<expresión de consulta AQL>)

    Esta consulta utiliza la cláusula IN para especificar los resultados de la subconsulta que coinciden con valores de la búsqueda de la subconsulta. Esta subconsulta solo devuelve una columna. Puede especificar el límite de resultados pero el máximo es de 10.000 resultados.

Ejemplos de subconsulta

La sentencia SELECT anidada en paréntesis es la subconsulta. La subconsulta se ejecuta primero y proporciona los datos utilizados por la consulta principal. La sentencia SELECT de consulta principal recupera los nombres de usuario de la salida (cursor) de la subconsulta

SELECT username FROM  
(SELECT * FROM events 
WHERE username IS NOT NULL 
LAST 60 MINUTES)

La consulta siguiente devuelve registros en los que el nombre de usuario de la base de datos Ariel coincide con valores de la subconsulta.
SELECT * FROM events 
WHERE username IN 
(SELECT username FROM events 
LIMIT 10 LAST 5 MINUTES) LAST 24 HOURS

La consulta siguiente devuelve registros en los que la dirección IP de origen de la base de datos de Ariel coincide con la dirección IP de destino de la subconsulta.
SELECT * FROM EVENTS 
WHERE sourceip IN 
(SELECT destinationip FROM events)

La consulta siguiente devuelve registros en los que la dirección IP de origen de la base de datos de Ariel coincide con las direcciones IP de origen devueltas en la subconsulta. La subconsulta filtra los datos de la sentencia select principal ubicando hosts internos que interactúan con entidades de alto riesgo. La consulta devuelve hosts que se han comunicado con cualesquiera hosts que han interactuado con entidades de riesgo elevado.
SELECT sourceip AS 'Risky Hosts' FROM events 
WHERE destinationip IN (SELECT sourceip FROM events 
WHERE eventdirection = 'L2R'
AND REFERENCESETCONTAINS('CriticalWatchList', destinationip) 
GROUP BY sourceip) 
GROUP BY sourceip last 24 hours