求助sql语句,没分了,唉……
时间:2011-06-27
来源:互联网
在mysql下,谁能帮我把这个sql语句优化一下,谢谢了
SELECT *
FROM (
SELECT `country_name` , count( * ) AS num
FROM `lomo_track_201106`
GROUP BY `country_name`
ORDER BY num DESC
) AS a
LIMIT 0 , 20
UNION ALL SELECT 'other', sum( num ) AS num
FROM (
SELECT `country_name` , count( * ) AS num
FROM `lomo_track_201106`
GROUP BY `country_name`
ORDER BY num DESC
LIMIT 20 , 1000000
) AS b;
SELECT *
FROM (
SELECT `country_name` , count( * ) AS num
FROM `lomo_track_201106`
GROUP BY `country_name`
ORDER BY num DESC
) AS a
LIMIT 0 , 20
UNION ALL SELECT 'other', sum( num ) AS num
FROM (
SELECT `country_name` , count( * ) AS num
FROM `lomo_track_201106`
GROUP BY `country_name`
ORDER BY num DESC
LIMIT 20 , 1000000
) AS b;
作者: lijpwsw 发布时间: 2011-06-27
表中有无唯一标识的字段,
将
SELECT `country_name` , count( * ) AS num
FROM `lomo_track_201106`
GROUP BY `country_name`
ORDER BY num DESC
存为 VIEW
将
SELECT `country_name` , count( * ) AS num
FROM `lomo_track_201106`
GROUP BY `country_name`
ORDER BY num DESC
存为 VIEW
作者: wwwwb 发布时间: 2011-06-27
引用 1 楼 wwwwb 的回复:
表中有无唯一标识的字段,
将
SELECT `country_name` , count( * ) AS num
FROM `lomo_track_201106`
GROUP BY `country_name`
ORDER BY num DESC
存为 VIEW
表中有无唯一标识的字段,
将
SELECT `country_name` , count( * ) AS num
FROM `lomo_track_201106`
GROUP BY `country_name`
ORDER BY num DESC
存为 VIEW
不想用视图 也不想用存储过程
要求就是 查询出来数量在前二十的国家名称 然后将其他的国家的数量归到other字段里面
作者: lijpwsw 发布时间: 2011-06-27
首先country_name加索引不需要多讲了。如果不用view的话,
可以考虑使用减法来统计other的count,理论上在country数量较多的时候,会有点优势
SQL code
因为无条件统计一张表的记录数,这个不需要扫描表或索引的。
可以考虑使用减法来统计other的count,理论上在country数量较多的时候,会有点优势
SQL code
SELECT country_name, num FROM (SELECT country_name, count(*) AS num FROM lomo_track_201106 GROUP BY country_name ORDER BY num DESC LIMIT 20) a UNION ALL SELECT 'other', b.total - sum(a.num) FROM (SELECT country_name, count(*) AS num FROM lomo_track_201106 GROUP BY country_name ORDER BY num DESC LIMIT 20) a, (SELECT count(*) AS total FROM lomo_track_201106) b
因为无条件统计一张表的记录数,这个不需要扫描表或索引的。
作者: shine333 发布时间: 2011-06-27
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28