SQL - Seleccionar registros cada 6 filas

 
Vista:

Seleccionar registros cada 6 filas

Publicado por Gonza (7 intervenciones) el 09/09/2013 22:05:21
Buenas, como hago para seleccionar cada x registros?
lo estoy haciendo en SQL/access

Tengo:
hora
0
1
2
3
4
5
6
7
8
9
... (hasta)
24

Quiero que el resultado sea cada seis horas (o seis filas que seria lo mismo)

0
6
12
18
24

Alguien sabe como hacer esto?

gracuas desde ya, saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Seleccionar registros cada 6 filas

Publicado por leonardo_josue (1173 intervenciones) el 11/09/2013 22:44:30
Hola Gonza,:

Una opción sería obtener el MODULO de dividir la hora entre 6, en estos momentos no tengo ACCESS para probar, pero con MySQL sería así, supongamos que tu tabla es esta:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
mysql> SELECT  hora FROM tabla;
+------+
| hora |
+------+
|    0 |
|    1 |
|    2 |
|    3 |
|    4 |
|    5 |
|    6 |
|    7 |
|    8 |
|    9 |
|   24 |
+------+
11 rows in set (0.00 sec)

Si obtienes el MODULO de 6 (el residuo que queda de dividir la hora entre 6) obtienes lo siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
mysql> SELECT  hora, hora MOD 6 FROM tabla;
+------+------------+
| hora | hora MOD 6 |
+------+------------+
|    0 |          0 |
|    1 |          1 |
|    2 |          2 |
|    3 |          3 |
|    4 |          4 |
|    5 |          5 |
|    6 |          0 |
|    7 |          1 |
|    8 |          2 |
|    9 |          3 |
|   24 |          0 |
+------+------------+
11 rows in set (0.00 sec)


Ahora sólo resta filtrar aquellos registros donde el modulo es igual a 0, esto serían el 0 y todos los múltipos de 6 (6, 12, 18, 24, etc).

1
2
3
4
5
6
7
8
9
mysql> SELECT  hora, hora MOD 6 FROM tabla WHERE hora MOD 6 = 0;
+------+------------+
| hora | hora MOD 6 |
+------+------------+
|    0 |          0 |
|    6 |          0 |
|   24 |          0 |
+------+------------+
3 rows in set (0.00 sec)

Es sólo cuestión de que investigues cómo obtener el modulo de dos números en ACCESS.

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar