Todos los productos
Search
Centro de documentos

OpenSearch:SELECT

Última actualización: Sep 04, 2026

SELECT es la base de todas las consultas en High-performance Search Edition. Cada cláusula de consulta avanzada (filtrado, agrupación, ordenamiento y paginación) se construye sobre una instrucción SELECT. Para consultar la sintaxis de consultas avanzadas, consulte los temas relacionados.

Sintaxis

SELECT [ DISTINCT ]
    { * | projectItem [, projectItem ]* }
FROM tableExpression
    [ WHERE booleanExpression ]
    [ GROUP BY { groupItem [, groupItem ]* } ]
    [ ORDER BY { orderByItem [, orderByItem ]* } ]
    [ HAVING booleanExpression ]
    [ LIMIT number ]
    [ OFFSET number ]

projectItem:
    expression [ [ AS ] columnAlias ]
    | tableAlias . *

Cláusulas

SELECT

Devuelve todas las columnas o un conjunto específico de columnas de la tabla de origen.

Ejemplo 1: Devolver todas las columnas.

SELECT * FROM table;

Ejemplo 2: Devolver columnas específicas y asignar un alias.

SELECT f1, f2 AS ff FROM table;

Ejemplo 3: Devolver valores distintos y eliminar duplicados.

SELECT DISTINCT f FROM table;

WHERE

Filtra las filas antes de que se realice cualquier agrupación. Solo las filas en las que booleanExpression se evalúa como true se pasan a las cláusulas siguientes.

GROUP BY

Agrupa las filas que comparten los mismos valores en las columnas especificadas; se utiliza generalmente con funciones de agregación.

SELECT f1, count(*) AS num
FROM t1
GROUP BY f1;

ORDER BY

Ordena el conjunto de resultados por una o más columnas.

HAVING

Filtra los grupos después de la agregación de GROUP BY. Utilice HAVING para aplicar condiciones sobre los resultados agregados.

Diferencia con WHERE:

Cláusula

Opera sobre

Se evalúa

WHERE

Filas individuales

Antes de la agrupación

HAVING

Grupos agregados

Después de la agrupación

LIMIT

Restringe el número de filas devueltas.

OFFSET

Omite un número específico de filas antes de devolver los resultados. Utilice OFFSET junto con LIMIT para realizar consultas paginadas.

A continuación se muestra un ejemplo que cuenta las filas por grupo en una subconsulta y luego filtra los grupos donde num supera 100:

SELECT * FROM (
    SELECT f1, count(*) AS num
    FROM t1
    GROUP BY f1
) tt
WHERE tt.num > 100;