ОблоТка канала

Oracle DeveloperπŸ‘¨πŸ»β€πŸ’»

ВсС ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π² Π‘Π£Π‘Π” "Oracle" SQL, PL/SQL, оптимизация, Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°, сСртификации ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.

Oracle DeveloperπŸ‘¨πŸ»β€πŸ’»

4 Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄
ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π²
Π—Π°Π΄Π°Ρ‡Π°: подробная постановка Π² постС Π²Ρ‚ΠΎΡ€Π½ΠΈΠΊΠ°. РСшСниС: Π—Π°Π΄Π°Ρ‡ΠΊΠ° Π½Π° аналитичСскиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (АЀ). ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ сумму для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ сгруппированной Ρ‚Ρ€ΠΎΠΉΠΊΠΈ строк, Π½ΡƒΠΆΠ½ΠΎ ΠΊΠ°ΠΊ-Ρ‚ΠΎ ΠΈΠΌ Π΄Π°Ρ‚ΡŒ порядковыС Π½ΠΎΠΌΠ΅Ρ€Π° Π³Ρ€ΡƒΠΏΠΏ. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π½ΠΎΠΌΠ΅Ρ€ Π³Ρ€ΡƒΠΏΠΏΡ‹ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ исходной строки ΠΌΠΎΠΆΠ½ΠΎ ΡΡƒΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ "n". НСобходимо ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎ сортировку ΠΏΠΎ β€œn” ΠΏΡ€ΠΈ расстановкС Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² Π³Ρ€ΡƒΠΏΠΏ. ▫️АЀ row_number - для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки отдаст порядковый Π½ΠΎΠΌΠ΅Ρ€ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ сортировки. ▫️Ѐункция ceil - Π²Π΅Ρ€Π½Π΅Ρ‚ наимСньшСС Ρ†Π΅Π»ΠΎΠ΅ число, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ мСньшС числа, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° (см скрин). Π˜Ρ‚ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ запрос:
select group_, sum(n) group_summa
  from (select n
              ,ceil(row_number() over(order by n) / 3) group_
          from tab1)
 group by group_
 order by group_;

На скринС Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΠ» Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ запрос для наглядности. Подобная Π·Π°Π΄Π°Ρ‡ΠΊΠ° Π±Ρ‹Π»Π° Π½Π° собСсСдовании Π² ЯндСксС, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±ΠΎΠ»Π΅Π΅ заморочСнная с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ АЀ. ΠŸΠ΅Ρ€Π΅Ρ‚Π΅Ρ€Π΅Ρ‚ΡŒ Π² Ρ‡Π°Ρ‚ΠΈΠΊΠ΅ #Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅Π·Π°Π΄Π°Ρ‡ΠΈ #яндСкс #аналитичСскиСфункции