как я могу отсортировать данные по строкам? [MYSQL]

#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 предложении.