#php #mysql #sql #descendant
#php #mysql #sql #потомок
Вопрос:
Я спрашиваю, есть ли возможность упорядочить результаты по порядку потомков по количеству отображений строк, пример для пояснения: вот моя таблица:
foo
foo1
foo
foo
foo1
foo2
вот мой результат после вызова запроса (который я не могу угадать):
foo
foo
foo
foo1
foo1
foo2
потому что foo появляется 3 раза, затем foo1, который появляется 2 раза, а затем foo2 появляется всего 1 раз.
Итак, как выглядит используемый запрос?
Я буду признателен за любую поддержку! С уважением!
Ответ №1:
select t1.col from
table as t1 inner join (
select col,count(col) as num
from table
group by col) as t2
on t1.col = t2.col
order by t2.num desc
Комментарии:
1. Эта часть запроса «выберите col, посчитайте (col) как num из группы таблиц по col» выдает вам каждое отдельное значение и его количество вхождений (попробуйте запустить его, чтобы увидеть результат). Поскольку вам нужны все отдельные записи, вам нужно выполнить соединение между вашей таблицей и запросом, который я написал вам выше. Наконец, вы сортируете результат в порядке убывания по количеству вхождений, которые вы нашли с помощью этого запроса.
2. @nick rulez, ваш первый запрос выполнил цель (без ‘join’), отлично для вас! огромное вам спасибо!
3. потому что на самом деле я хотел показать каждую строку с ее номером появления, как вы это сделали!