MySQL查询以获取最常出现的最长文本

时间:2011-08-10 04:08:56

标签: mysql sql

我有一个MySQL表 t1 一个文本字段 f1 。我有这个查询来查找 f1 的前100个最常见值以及它们的频率:

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;

我的表有超过44M的记录,以防万一。

感谢。

1 个答案:

答案 0 :(得分:1)

你说你想按频率然后按长度订购,但是你要求按长度和频率订购。撤消您的ORDER BY条款。