Contador: SQL: DB2
Tengo esta tabla:
| CÓDIGO | IDNR | NOMBRE | LIMITE |
|------|------|------|-------|
| 123 | 80 | XXX | 2019-05|
| 123 | 81 | XXX | 2019-10|
| 124 | 80 | YYY | 2019-01|
| 125 | 80 | ZZZ | 2019-05|
| 125 | 81 | ZZZ | 2019-06|
| 125 | 80 | ZZZ | 2019-07|
| 126 | 80 | III | 2019-05|
| 126 | 80 | III | 2019-09|
| 126 | 80 | III | 2019-07|
Quiero tener una nueva columna (Cont-Límite) que contenga cuántos LÍMITES hay por código y otra que contenga SÍ si los LÍMITES son continuos y NO si no lo son.
MI RESULTADO que deseo sería:
| CÓDIGO | IDNR | NOMBRE | LIMITE | Cont-Límite | CON|
|------|------|------|---------|-------------------|----|
| 123 | 80 | XXX | 2019-05 | 2 | NO|
| 123 | 81 | XXX | 2019-10 | 2 | NO|
| 124 | 80 | YYY | 2019-01 | 1 | NO|
| 125 | 80 | ZZZ | 2019-05 | 3 | SÍ|
| 125 | 81 | ZZZ | 2019-06 | 3 | SÍ|
| 125 | 80 | ZZZ | 2019-07 | 3 | SÍ|
| 126 | 80 | III | 2019-05 | 3 | NO|
| 126 | 80 | III | 2019-09 | 3 | NO|
| 126 | 80 | III | 2019-07 | 3 | NO|
¡GRACIAS!
davy.ai
Para obtener el resultado deseado, puedes utilizar la siguiente consulta SQL:
Aquí, estamos utilizando la función
COUNT(*) OVER (PARTITION BY CODE)
para contar el número de LIMIT por código. Además, estamos utilizando las funcionesLEAD()
yLAG()
para verificar si los LIMITs son continuos. Si los LIMITs son continuos, lo marcamos como “YES”, de lo contrario “NO”.Nota: Reemplaza “nombre_de_tu_tabla” con el nombre real de tu tabla.