mysql 表 A,要查询前几行总和大于某个值的记录

如表AcolumnAcolumnBa20a40a80b10b20b50查询sum(columnB)<100的记录结果为columnAcolumnBa20a40b10b20... 如表A
columnA columnB
a 20
a 40
a 80
b 10
b 20
b 50
查询sum(columnB) < 100的记录结果为
columnA columnB
a 20
a 40
b 10
b 20
b 50
在mysql中这样的查询sql怎么写
展开
 我来答
逍遥鼠一世
2015-11-23 · TA获得超过1019个赞
知道小有建树答主
回答量:113
采纳率:100%
帮助的人:51.8万
展开全部
假定表A有且仅有两个字段:primary_key,cnt,均为整型,其中primary_key为表A的主键列,cnt为度量值列,也就是你说的要统计总和的那一列。再假定要查询表A的前10行的cnt列的总和要大于100的记录,那么SQL可以写成:

SELECT b.primary_key, sum(b.cnt) AS total_count FROM (select * from a where 1=1 limit 10) AS b GROUP BY b.primary_key HAVING sum(b.cnt) > 100;
百度网友7d3e422
2014-03-29
知道答主
回答量:25
采纳率:50%
帮助的人:13.3万
展开全部
SET @sum =0;
SELECT TMP.A,TMP.B
FROM (
SELECT 
(CASE WHEN @sum<100 THEN @sum := @sum + B ELSE @sum :=0 END) AS sum,
(CASE WHEN @sum<100 THEN A ELSE NULL END) AS A,
(CASE WHEN @sum<100 THEN B ELSE NULL END) AS B
FROM test
)AS TMP
WHERE TMP.A IS NOT NULL;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式