我有一个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;我的桌子上有超过4400万张记录以防这件事发生。
谢谢。
发布于 2011-08-10 04:14:32
你说你想按频率然后长度来订购,但你要求顺序是长度然后是频率。反转您的ORDER BY子句。
https://stackoverflow.com/questions/7005798
复制相似问题