Рейтинг:
0
gps sana
Ошибка 1064 (42000): у вас есть ошибка в синтаксисе SQL; проверьте руководство, которое соответствует вашей версии сервера MySQL для правильного синтаксиса для использования рядом с 'with top_5_rows as ( select queue_name, jobs_pending,jobs_running from queues ord' в строке 1
Jochen Arndt
Смотрите мой обновленный ответ.
CHill60
Просто для информации - они (наконец-то!) в том числе и с in V8 MySql
Jochen Arndt
Спасибо за информацию. Я обновлю свой ответ.
Jochen Arndt
Спасибо.
Я только что увидел, что вы опубликовали причину в качестве комментария раньше (пока я писал свой ответ). Так что вы должны были опубликовать решение.
CHill60
Никаких проблем - теперь все решено, а это главное :)
gps sana
там, где вы ее разрешили.Можете ли вы выделить его
CHill60
Йохен сказал вам, что вы не можете использовать with
и предоставил ссылку, показывающую вам, как использовать подзапрос. Подзапрос - это ваша единственная альтернатива.
gps sana
я использовал следующий подзапрос, но дело в том, что только job_pending сортируется, а столбец job_running не сортируется, так как я могу сортировать как ожидающие, так и запущенные coluns независимо.
выберите аргумент,jobs_pending,jobs_running от((выберите аргумент,jobs_pending,jobs_running от очередей заявок по jobs_pending +jobs_running деск лимит 5 ) "объединить все" (выбрать "другие", как аргумент ,сумма(jobs_pending) как jobs_pending ,сумма(jobs_running) как jobs_running из (выбрать jobs_pending,jobs_running от очередей заявок по jobs_running+jobs_pending деск лимит 18446744073709551615 смещения 5 ) фу)) фу;
Jochen Arndt
Где вы читали об этом знаке"+"?
gps sana
я погуглил его.Но теперь не мог найти источник
gps sana
проблема теперь в том, что jobs_pending работает для моих вышеприведенных подзапросов, которые не перечисляются в порядке убывания.
Jochen Arndt
Похоже, что вы погуглили полный запрос, но не заметили, что результаты были получены для какой-то другой базы данных SQL, но не для MySQL.
Вы заменили " + "на",", как было предложено в моем решении?
gps sana
я тоже попробовал запятую, так как она не работает.
Для справки вы можете посмотреть приведенную ниже таблицу как я получил результат:
+-------------+--------------+--------------+
| queue_name | jobs_pending | jobs_running |
+-------------+--------------+--------------+
| ncsim_short| 4549 | 237 |
| adice_long| 654 | 264 |
| ncsim_long| 605 | 116 |
/ нормальный| 361 | 26 |
| adice_short| 175 | 92 |
/ другие| 6344 | 739 |
+-------------+--------------+--------------+
смотрите столбец jobs_running, он не находится в порядке убывания.
Jochen Arndt
При указании нескольких столбцов порядка он устанавливает приоритет:
- Сначала сортировка по jobs_pending
- Если есть наборы записей с одинаковым количеством jobs_pending, отсортируйте их по jobs_running.
Любое другое не имело бы смысла. Это нарушило бы связь с именем очереди.
gps sana
не могли бы вы пожалуйста, покажите мне пример.Потому что сначала я уже разобрался с jobs_pending
Jochen Arndt
Вы не можете сортировать по 2 столбцам одновременно. Один должен иметь преимущество.
Сортировка либо по ожидающей, либо по запущенной и необязательной сортировке, а затем по другой, когда основной столбец сортировки имеет идентичные значения.
gps sana
только столбец jobs_pending выполняется в порядке убывания.Ineed как Jobs pending, так и jobs_running в нисходящем уровне.
gps sana
если я даю comman, то другие вычисления не дают правильных значений.