mysql - 按值之和限制查询

标签 mysql sql

我有一个 mysql 表,transactions,包含字段 id、transactionType、quantity、price 等。我想通过一列的累计总和来限制记录。所以我想取出所有的交易,直到累计数量达到我的变量(这里<=50)。

我做错了什么?

SET @qsum := 0; 
SELECT * 
FROM (
  SELECT *, (@qsum := @qsum + quantity) AS cumulative_quantity 
  FROM transactions ORDER BY id DESC
) transactions 
WHERE 
transactionType = 'buy'
AND typeID = 10
AND cumulative_quantity <= 50

最佳答案

试试这个

SET @qsum := 0; 
SELECT * 
FROM (
  SELECT *, (@qsum := @qsum + quantity) AS cumulative_quantity 
  FROM transactions
  WHERE transactionType = 'buy'
   AND typeID = 10
   AND cumulative_quantity <= 50
  ORDER BY id DESC
) transaction 

关于mysql - 按值之和限制查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33314349/

相关文章:

php - 如何在 Mysql 表中找到匹配的数据行?

php - 从 2 个 mysql 表中获取并显示按月记录

php - 调用特定 php 函数后出现 Android Volley null 错误,其他函数工作正常

php - mysql_connect 和 mysql_selectdb 没有将一些变量作为参数的奇怪问题

mysql - 根据主机名查找匹配的列值

java - 如何合并 10 万条 MySQL 行

php - 在 PHP 中格式化 SQL 结果的最快方法

mysql - SQL不同的连接和WHERE子句可能会出错

带时间范围的 SQL SELECT

mysql - Laravel:使用增量 ID 作为另一列的默认值