Mysql 如何选择行总和价格小于500且大于450的随机行?

Mysql 如何选择行总和价格小于500且大于450的随机行?,mysql,random,sum,Mysql,Random,Sum,表顺序: id month price -------------------------------------- 1 12 74.00 2 11 27.00 3 12 35.00 4 12 85.00 5 12 38.00 6

表顺序:

id          month          price
-------------------------------------- 
1           12             74.00
2           11             27.00
3           12             35.00
4           12             85.00
5           12             38.00
6           04             45.00
7           03             27.00
8           12             23.00
9           12             45.00
10          03             36.00
11          12             67.00
12          06             45.00
13          12             23.00
14          12             35.00
如何从月份=12且所选行之和小于150且大于100的订单中选择随机行

或者总数最多是150

其中一个期望结果总和为147.00:

id          month          price
-------------------------------------- 
1           12             74.00
5           12             38.00
14          12             35.00
其他期望结果和131.00的示例:

id          month          price
-------------------------------------- 
3           12             35.00
5           12             38.00
8           12             23.00
14          12             35.00
我试过这样的方法,但没有成功:

SELECT id,month,price,SUM(price) 
FROM orders 
WHERE month = '12' AND SUM(price) < 150 AND SUM(price) > 100
ORDER BY rand()

请帮帮我这是个复杂的问题。您需要对随机行进行累积求和,然后选择任意值

这将使您获得小于150的限制:

SELECT o.*
FROM (SELECT o.*, @cumep := (@cum3p + price) as cumep
      FROM orders o CROSS JOIN (SELECT @cumep := 0) params
      WHERE month = 12
      ORDER BY rand()
     ) o
WHERE cumep < 150;

这不起作用,查询中出错:组函数@ExyuPortal的使用无效。哎呀,我在子查询中留下了一些碎片。有人能帮我解决吗