MySQL запрос, чтобы получить самые длинные тексты, которые встречаются чаще всего - PullRequest
1 голос
/ 10 августа 2011

У меня есть таблица MySQL t1 текстовое поле f1 . У меня есть этот запрос, чтобы найти 100 самых распространенных значений f1 вместе с их частотой:

SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 ORDER BY c DESC LIMIT 100;

Теперь мне нужен запрос, чтобы выяснить, какие самые длинные значения f1 встречаются чаще всего. То есть я хочу сначала упорядочить записи таблицы по частотам (как это делает запрос выше), а затем я хочу упорядочить их по длине и захватить первые 100. Я попытался сделать это с этим запросом, но он не возвращает что я хочу, это просто возвращает записи с самыми длинными значениями f1 (большинство из них только с 1 появлением):

SELECT f1, LENGTH(f1) AS l, COUNT(*) AS c FROM t1 GROUP BY f1, LENGTH(f1) ORDER BY l DESC, c DESC LIMIT 100;

В моей таблице более 44 миллионов записей на случай, если это имеет значение.

Спасибо.

1 Ответ

1 голос
/ 10 августа 2011

Вы сказали, что хотите упорядочить по частоте, а затем по длине, но вы запрашиваете порядок по длине, а затем по частоте. Отмените предложение ORDER BY.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...