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的使用无效。哎呀,我在子查询中留下了一些碎片。有人能帮我解决吗