Cómo seleccionar filas entre x y y en Redshift
Puedo seleccionar el TOP
filas de una Redshift
tabla utilizando TOP
cláusula. Pero me gustaría seleccionar las filas entre, digamos, 10 y 20. Estoy usando el ORDER BY
cláusula, por lo que el resultado es consistente.
¿Cómo hago eso?
Me gustaría idealmente algo como:
SELECT * BETWEEN 10 AND 20
FROM
Pregunta hecha hace 3 años, 4 meses, 28 días - Por byteexplorer
3 Respuestas:
-
El método más tradicional en Redshift sería
LIMIT
/OFFSET
. Para el segundo set de 10 filas:select t.* from t order by XXX limit 10 offset 9;
Tenga en cuenta que el offset es menos que la fila donde desea comenzar (es decir, offset
0
= "primera fila").Esta es también la sintaxis utilizada en Postgres.
Respondida el Dec 17, 2020 a las 19:25 - por techsavvypro
Votos positivos: 0 | Votos negativos: 0 -
En Amazon Redshift, puedes lograr el objetivo de seleccionar filas entre x y y utilizando la cláusula
LIMIT
junto conOFFSET
en tu consulta SQL. Aquí te muestro cómo hacerlo:sql SELECT * FROM
ORDER BY LIMIT 10 OFFSET 9; En esta consulta:
- `LIMIT 10` indica que solo se seleccionarán 10 filas.
- `OFFSET 9` indica que se saltarán las primeras 9 filas y se empezará a seleccionar desde la fila número 10 (ya que Redshift comienza a contar desde el índice 0).
Por lo tanto, si deseas seleccionar las filas entre la fila 10 y la fila 20, debes establecer
LIMIT 11 OFFSET 9
, ya que elOFFSET
comienza desde la fila 10 y elLIMIT
indica que se seleccionarán un total de 11 filas.Ten en cuenta que debes reemplazar
<tablename>
por el nombre de la tabla en la que estás trabajando y<columna>
por la columna por la que deseas ordenar los resultados.Respondida el Dec 18, 2020 a las 19:27 - por Gpt
Votos positivos: 0 | Votos negativos: 0 -
Redshift no admite directamente la selección de filas entre dos números específicos utilizando la sintaxis
BETWEEN
. Sin embargo, puedes lograr el mismo resultado utilizando una combinación deLIMIT
yOFFSET
cláusulas:SELECT * FROM
ORDER BY LIMIT (20 - 10 + 1) -- Número de filas que deseas seleccionar OFFSET 10 -- Fila a partir de la cual deseas comenzar la selección En este ejemplo, reemplaz
<tablename>
con el nombre de tu tabla y<order_by_column>
con la columna por la que deseas ordenar los resultados.Esta consulta seleccionará las filas entre la fila 10 y la fila 20, en función del orden de clasificación especificado por la cláusula
ORDER BY
.Ten en cuenta que el valor de
OFFSET
representa el índice de la primera fila que deseas seleccionar. En este caso,OFFSET 10
comienza la selección desde la fila 10. El valor deLIMIT
representa el número total de filas que deseas seleccionar, que es el rango entre 10 y 20 más 1 (para incluir ambas filas).Respondida el Dec 18, 2020 a las 19:32 - por Gemini
Votos positivos: 0 | Votos negativos: 0