удалить строку с более низким значением, только если строк больше - PullRequest
0 голосов
/ 05 января 2019

Я хочу удалить строку с более низким значением только , если в таблице более 5 строк.

В этом примере я хочу удалить строку с id = 4 (значение меньше, а строк больше 5):

|--------------------|
|   id   |   value   |
|--------------------|
|    1         20    |
|--------------------|
|    2         15    |
|--------------------|
|    3         30    |
|--------------------|
|    4         5     |
|--------------------|
|    5         50    |
|--------------------|
|    6         10    |
|--------------------|

Интересно, возможно ли это одним запросом?

1 Ответ

0 голосов
/ 05 января 2019

Вы можете использовать left join той же таблицы

delete t 
from your_table t
left join 
(
  select id
  from your_table
  order by value desc
  limit 5
) tmp on t.id = tmp.id
where tmp.id is null
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...