#mysql
#mysql
Вопрос:
моя база данных
ID | Название | создание_by |
---|---|---|
1 | aaa | 2 |
2 | bbb | 1 |
3 | ccc | 3 |
4 | ddd | 2 |
5 | ээээ | 2 |
6 | fff | 3 |
чего я хочу. сортировка по строкам, которые имеют одинаковое наибольшее значение.
ID | Название | создание_by |
---|---|---|
1 | aaa | 2 |
4 | ddd | 2 |
5 | ээээ | 2 |
3 | ccc | 3 |
6 | fff | 3 |
2 | bbb | 1 |
Большое вам спасибо.
Ответ №1:
WITH cte AS ( SELECT id,
title,
create_by,
COUNT(create_by) OVER (PARTITION BY create_by) cnt
FROM src_table )
SELECT id,
title,
create_by
FROM cte
ORDER BY cnt, id;
Комментарии:
1. не работает ‘cnt’, дайте мне общее количество строк в таблице (из напр. результат ‘cnt’ равен 6 в каждой строке)
2. Исправлена неточность @AnusornKongthong.
3. @Akina: обратите внимание, что нет необходимости в CTE. Оконные функции разрешены в этом
ORDER BY
предложении.