Ni uno de más, ni uno de menos
- O(2ⁿ) · Legendaria
- Plan completo
- SQL
- ventanas
- operaciones
Enunciado
La empresa reparte 5000 de las ganancias del año entre toda su gente, Carmen incluida, en proporción al salario. Se paga en unidades enteras, y redondear la parte de cada quien no sirve: las nueve partes redondeadas suman 5001.
Contabilidad lo hace así. Cada persona recibe su parte sin los decimales. Las unidades que quedan sin repartir se dan de una en una, empezando por quien perdió la fracción más grande; entre dos fracciones iguales, primero quien va antes por orden alfabético. A Paula le tocan 729.54: tiene 729 seguros y espera turno con su .54.
Muestra el nombre de cada persona y lo que recibe, en ese orden, de quien más recibe a quien menos y, si empatan, por nombre. La suma tiene que dar 5000 justos, con estos salarios y con los que haya mañana.
Lo que tiene que devolver
Estas filas, en este orden
| nombre | recibe |
|---|---|
| Carmen | 925 |
| Paula | 729 |
| Marco | 676 |
| Lidia | 534 |
| Samuel | 534 |
| Fabio | 463 |
| Greta | 427 |
| Nadia | 374 |
| Rita | 338 |
Es lo que sale con los datos de la base de práctica del reto. Los nombres de las columnas no cuentan, las tuyas pueden llamarse como quieras: cuenta cuántas son y en qué orden van. Además de esta, el reto tiene pruebas ocultas con otros datos, que se revelan al enviar tu solución.
Empiezas con esto
SQL
SELECT nombre, salario,
SUM(salario) OVER () AS total
FROM empleadosSe abre en el navegador, con el editor y las pruebas. Este reto es del plan completo; los de O(1) y O(log n) son gratis.
Más retos de O(2ⁿ)
- ¿Quién me presta los apuntes?SQL · subconsultas · uniones · agrupar
- El de inviernosSQL · recursión · textos · ventanas
- El estante más vacíoSQL · ventanas · fechas · conjuntos
- El salario de en medioSQL · ventanas · agrupar
- El vale vence hoySQL · recursión · textos
- Fabio contra todosSQL · recursión · uniones