0
votes

Regroupement dynamique des données || Requête SQL nécessaire

Year.            Salary
2014-2016        18300
2017-2019        21900

0 commentaires

3 Réponses :


0
votes

Par exemple, vous pouvez créer quelques variables qui vous aideront à créer des groupes dans le tableau I.E. 2014-2015, etc. Réglage @rowstogroup code> Vous pouvez regrouper autant de lignes que vous le souhaitez. @Remainder CODE> aide à trouver les groupes suivants dans année code>. Dans le cte code> i utilisé somme sous forme de fonction de fenêtre code> plus caisse code> pour créer une colonne sur groupe par code>.

years       salary
2014-2016   18300
2017-2019   21900


3 commentaires

Je suis confondre à quel point le reste est utile. S'il vous plaît ajouter la sortie de Select * de l'année de l'année si ce n'est pas trop de problème? Par exemple, si vous collectez des années à leur reste, vous ne finissez-vous pas de regrouper toutes les années impaires ensemble?


Ce reste est crucial ici "cas lorsque l'année% Rowstogroup = reste puis 1 autre 0 extrémité". Il aide à trouver des frontières entre les groupes. Lorsqu'il trouve le même reste, il ajoute +1, un nouveau groupe est donc créé.


Toujours confus, mais peut-être que la cause première est la réponse aux deux questions: a) Comment vous pouvez résumer sans groupe en avec la déclaration et b) dans la requête finale Comment "regrouper" les années consécutives consécutives au cours de laquelle des années consécutives doivent avoir un reste différent?



0
votes

Option 1 Strong> Division d'utilisation de votre nombre d'années et de rond-point pour concevoir des appels de fonction imbriqués qui renvoient le groupe d'exercice souhaité. Cela pourrait devenir désordonné mais il est possible

Option 2 forte> - Les plus flexibles de toute plate-forme SQL seraient d'ajouter une table (ou une vue) d'une année avec une colonne par groupe souhaitée P>

Year | GroupOne  | GroupTwo | GroupThree
-----+-----------+----------+-----------
2019 | 2019.1    | 2018.2   | 2019.3
2018 | 2018.1    | 2018.2   | 2016.3
2017 | 2017.1    | 2016.2   | 2016.3
2016 | 2016.1    | 2016.2   | 2016.3
2015 | 2015.1    | 2014.2   | 2015.3
...


0 commentaires

3
votes

Vous pouvez le faire à l'aide de fonctions de fenêtre et d'agrégation. En supposant que vous voulez n ans dans chaque groupe: xxx


1 commentaires

Brillant. On peut référer: Solution