猿问

mysql中使用ORDER BY 之后再用Limit没有效果?

看下面两条语句,通过这些条件 WHERE created_at=(SELECT MAX(created_at) FROM hs300_sql)AND period='06s' 得到的数据有300条,我只想取前150条数据的某个字段的和,但是我两条语句的结果是一样的,也就是说limit 149没有起作用,请问我应该怎么写才能达到我的目地

SELECT SUM((avg_p) FROM hs300_sql WHERE created_at=(SELECT MAX(created_at) FROM hs300_sql)AND period='06s' ORDER BY quanzhong DESC LIMIT 149 ;

SELECT SUM(avg_p) FROM hs300_sql WHERE created_at=(SELECT MAX(created_at) FROM hs300_sql)AND period='06s' ORDER BY quanzhong DESC ;
二楼的答案我试过,和我的结果是一样的,个人认为它是将所查询的结全部都求和了,并没有得到我们想像中,前150条记录的和,因为我把limit 149 这个条件去掉,它的结果也还是一样的

jeck猫
浏览 752回答 1
1回答

杨__羊羊

SELECT SUM(avg_p) FROM(select avg_p from hs300_sqlWHERE created_at=(SELECT MAX(created_at) FROM hs300_sql)AND period='06s'ORDER BY quanzhong DESC)klimit 149;
随时随地看视频慕课网APP

相关分类

MySQL
我要回答