Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Высших 3 студента по грейдам на каждый курс
|
|||
|---|---|---|---|
|
#18+
Добрый день. У меня такой вопрос, связанный с максимальными тремья грейдами на каждый курс. Есть 4 таблицы. Grade Student Section Course Они связаны по таким полям: Код: plsql 1. 2. 3. 4. На выходе получаю массив данных. Стоит вопрос, на который я и так и сяк не смог ответить. Нужно 3 максимальных numeric_grade найти для каждого c.description c.description - это название курса. Так же из общего массива найти 3 самых максимальных numeric_grade Я вот так написал: Код: plsql 1. 2. 3. 4. 5. 6. 7. База вернула пустой массив. А если поставлю ROWNUM = 1 вместо ROWNUM = 3, то база возвращает 1 запись как максимальную. Почему ROWNUM = 3 не работает? Где в моем коде ошибка подскажите пожалуйста? Заранее благодарю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2021, 12:08 |
|
||
|
Высших 3 студента по грейдам на каждый курс
|
|||
|---|---|---|---|
|
#18+
LiQuid Почему ROWNUM = 3 не работает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2021, 12:15 |
|
||
|
Высших 3 студента по грейдам на каждый курс
|
|||
|---|---|---|---|
|
#18+
Хотя бы подскажите в чем проблема этого кода, почему он возвращает мне пустое значение вместо трех записей? Где моя ошибка? Как сделать так чтобы 3 записи увидеть? Код: plsql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2021, 05:48 |
|
||
|
Высших 3 студента по грейдам на каждый курс
|
|||
|---|---|---|---|
|
#18+
Решил. Всем спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2021, 07:42 |
|
||
|
Высших 3 студента по грейдам на каждый курс
|
|||
|---|---|---|---|
|
#18+
ROWNUM назначается по мере выборки -- получили первую строку, назначили ей ROWNUM=1, она не подходит по условию, отбросили -- получили следующую строку, с учетом того, что предыдущих строк, удовлетворяющим условиям не было, эта становится (пока) первой, назначаем ей ROWNUM=1, не подходит, отбросили -- ... Ну и как избавиться -- уже сказали, использовать аналитику (row_number() over()) или подзапрос Код: plsql 1. 2. 3. 4. 5. Т.к. ROWNUM опять же назначается по мере выборки ДО упорядочивания, надо делать еще один позапрос. С аналитикой это все можно задать в конструкции упорядочивания ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2021, 07:50 |
|
||
|
|

start [/forum/topic.php?fid=52&fpage=25&tid=1880409]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
2ms |
| others: | 287ms |
| total: | 409ms |

| 0 / 0 |
