SQL - Enumeración con un maximo

   
Vista:

Enumeración con un maximo

Publicado por juanma (6 intervenciones) el 20/11/2017 02:50:33
Hola , una consulta estoy tratando de crear una nueva columna con la enumeración de los registros , pero necesito que por ejemplo a los 250 vuelva a contar desde 1

ejemplo si tengo 500 registros , cuente hasta 250 y a partir del (registro 251) empiece enumere de nuevo desde el 1 , de esta forma tendría 2 grupos de 250

Si alguien tiene una idea...

Gracias
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
Imágen de perfil de Isaias

Enumeración con un maximo

Publicado por Isaias (1175 intervenciones) el 20/11/2017 21:30:23
¿En que motor de base de datos?
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

Enumeración con un maximo

Publicado por Jm (6 intervenciones) el 21/11/2017 02:51:59
Hola , Access
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

Enumeración con un maximo

Publicado por leonardo_josue (1142 intervenciones) el 21/11/2017 20:32:59
Hola Juanma:

No tengo mucha experiencia en ACCESS, pero hasta donde recuerdo, no hay una forma "directa" de enumerar los registros de una consulta, por lo tanto, lo primero que debes de investigar es cómo numerar esos registros. Con SQL Estándar, hay muchas formas de simular la función ROW_NUMBER (que sirve para este propósito y que forma parte de otros DBMS's como Oracle)... puedes preguntarle a SAN GOOGLE como simular esta función en ACCESS, aquí algunas alternativas:

https://stackoverflow.com/questions/21917637/achieving-row-number-partition-by-in-ms-access
https://stackoverflow.com/questions/18753368/row-number-in-access-select-statement


Ahora bien, para la parte de "reiniciar" el contador, dependerá también de cómo enumeres tus registros, una opción por ejemplo sería obteniendo el residuo (MOD) de dividir el índice entre 250, es decir, algo así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
mysql> SELECT valor FROM tabla ORDER BY valor;
+-------+
| valor |
+-------+
|     1 |
|     2 |
|   249 |
|   250 |
|   251 |
|   252 |
|   253 |
|   499 |
|   500 |
|   501 |
|   502 |
|   503 |
+-------+
12 rows in set (0.00 sec)
 
mysql> SELECT
    ->   valor,
    ->   valor MOD 250 residuo1,
    ->   CASE WHEN valor MOD 250 = 0
    ->     THEN 250
    ->     ELSE valor MOD 250 END residuo2
    -> FROM tabla
    -> ORDER BY valor;
+-------+----------+----------+
| valor | residuo1 | residuo2 |
+-------+----------+----------+
|     1 |        1 |        1 |
|     2 |        2 |        2 |
|   249 |      249 |      249 |
|   250 |        0 |      250 |
|   251 |        1 |        1 |
|   252 |        2 |        2 |
|   253 |        3 |        3 |
|   499 |      249 |      249 |
|   500 |        0 |      250 |
|   501 |        1 |        1 |
|   502 |        2 |        2 |
|   503 |        3 |        3 |
+-------+----------+----------+
12 rows in set (0.00 sec)

Este código es MySQL, pero no debe ser muy distinto a como lo puedes hacer en ACCESS. Haz la prueba y nos comentas.

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

Enumeración con un maximo

Publicado por juan (6 intervenciones) el 23/11/2017 18:27:58
Hola a lo que me refiero es a algo asi ?

ej: enumerar grupos de 3


1 | pedro
2 | juan
3 | marta
1 | carla
2 | luis
3 | julia
1 | milagros
2 | carlos
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
Revisar política de publicidad