Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >根据列的总和返回行

根据列的总和返回行
EN

Stack Overflow用户
提问于 2010-09-03 15:55:00
回答 2查看 274关注 0票数 2

我正在尝试基于列的总和检索数据的子集。我们的目标是一个脚本来释放积压的项目。假设我们有100个BO产品,有50个库存。我想要更新订单数量总和小于50的最旧订单。所以就像这样:

示例架构:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Orders Table:
order_id, order_date

order_products Table:
order_product_id, order_id, product_id, product_status, ordered_quantity


select * from products 
where products_id=1234 
and status=1 
and sum(products_qty) < 50;   

其中,sum(products_qty)是返回的总数量,而不仅仅是单个行的返回数量。不确定是否可以使用单个查询或子查询,但我认为我应该先请教这里的专家。我尽量避免返回所有行,然后手动计数,直到达到限制。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-03 17:03:27

在使用SUM()COUNT()等聚合函数时,不能在WHERE子句中使用它们。当数据库扫描表/索引时,WHERE子句是逐行应用的,这意味着聚合函数的结果还不可用。

通过聚合结果进行过滤必须使用HAVING完成,这基本上是在将数据返回给客户端之前的最后一步。

根据您的需求,您需要保留一个运行计数,直到您检索到足够的行/订单来用完正在输入的新产品。这不是一个查询就能完成的。您需要使用服务器端变量来跟踪单个缺货订单“使用”了多少产品。

在我的脑海中,像这样的东西可能会起到作用:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SET @Available = 50;

SELECT order_id, SUM(ordered_quantity), @Available := @Available - SUM(ordered_quantity) AS available
FROM order_products
WHERE product_id = XXX
GROUP BY order_id, product_id
HAVING available >= 0;

使用任何额外的WHERE子句,这样您就可以先得到最早的缺货订单

票数 0
EN

Stack Overflow用户

发布于 2010-09-03 15:57:58

您需要使用GROUP by和Having

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select * from products 
where products_id=1234 
and status=1 
group by YourGroupingFields
Having sum(products_qty) < 50;   

根据您的信息:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select product_id from products 
where status=1 
group by product_id
Having sum(products_qty) < 50;   

将返回总数量小于50的product_id

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3637463

复制
相关文章
VBA:根据指定列删除重复行
文章背景:在工作生活中,有时需要进行删除重复行的操作。比如样品测试时,难免存在复测数据,一般需要删除第一行数据,保留后一行的数据。
Exploring
2022/09/20
3.2K0
【说站】Python DataFrame如何根据列值选择行
以上就是Python DataFrame根据列值选择行的方法,希望对大家有所帮助。
很酷的站长
2022/11/24
5.3K0
【说站】Python DataFrame如何根据列值选择行
列存储、行存储
Sybase在2004年左右就推出了列存储的Sybase IQ数据库系统,主要用于在线分析、数据挖掘等查询密集型应用。列存储,缩写为DSM,相对于NSM(N-ary storage model),其主要区别在于:
全栈程序员站长
2022/09/14
7.9K0
列存储、行存储
Bootstrap行和列
在Bootstrap中,行(Row)和列(Column)是构建响应式网格布局的核心组件。它们允许我们创建灵活的网格系统,以便在不同的屏幕尺寸下进行布局。
堕落飞鸟
2023/05/17
2.1K0
Ext根据条件显示隐藏列
  写在ExtonReady函数里面,并在表格成功渲染之后,可以添加判断是否隐藏或者显示某一列
河岸飞流
2019/08/09
2.7K0
根据某列相同元素求和
下面是一个需要计算相同基因的exon的长度的文件,即根据相同的基因,先计算基因的起点到终点的距离,再对相同的基因的的exon距离求和
生信编程日常
2020/06/11
9940
根据某列相同元素求和
行观点与列观点
行观点xA 行观点 列观点Ax 列观点
坑吭吭
2018/10/11
5580
行观点与列观点
dataframe行变换为列
使用 import org.apache.spark.sql.functions 里面的函数,具体的方式可以看 functions :
机器学习和大数据挖掘
2019/07/01
1.1K0
SQL行转列、列转行
这个主题还是比较常见的,行转列主要适用于对数据作聚合统计,如统计某类目的商品在某个时间区间的销售情况。列转行问题同样也很常见。
全栈程序员站长
2022/07/21
1.6K0
SQL行转列、列转行
hive行转列/列转行
先用concat_ws函数将将星座和血型用“,”连接后group by 用collect_set函数对name聚合,用concat_ws函数对聚合后的name用“|”分割
chimchim
2022/11/13
2K0
hive行转列/列转行
限制 SQL 返回行
您可以通过特定的行数或行的百分比来限制从 SQL 查询返回的行。在某些情况下,您可能需要在返回的行数受到限制之前对查询结果进行排序。
Yunjie Ge
2023/09/01
2060
限制 SQL 返回行
mysql行转列、列转行
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/130537.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/01
7K0
mysql行转列、列转行
mysql行转列,列转行
行转列,列转行是我们在开发过程中经常碰到的问题。行转列一般通过CASE WHEN 语句来实现,也可以通过 SQL SERVER 2005 新增的运算符PIVOT来实现。用传统的方法,比较好理解。层次清晰,而且比较习惯。 但是PIVOT 、UNPIVOT提供的语法比一系列复杂的SELECT...CASE 语句中所指定的语法更简单、更具可读性。下面我们通过几个简单的例子来介绍一下列转行、行转列问题。
yaphetsfang
2020/07/30
9.9K0
mysql行转列,列转行
SQL 行转列,列转行
PIVOT 后跟一个聚合函数来拿到结果,FOR 后面跟的科目是我们要转换的列,这样的话科目中的语文、数学、英语就就被转换为列。IN 后面跟的就是具体的科目值。
李英杰同学
2019/12/30
2.1K0
行存储 VS 列存储
点击上方“芋道源码”,选择“设为星标” 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java 2021 超神之路,很肝~ 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 Netty 源码解析 消息中间件 RocketMQ 源码解析 数据库中间件 Sharding-JDBC 和 MyCAT 源码解析 作业调度中间件 Elastic-Job 源码解析 分布式事务中间件 TCC-Transaction
芋道源码
2022/09/27
1.4K0
行存储 VS 列存储
行存储 VS 列存储[通俗易懂]
目前大数据存储有两种方案可供选择:行存储(Row-Based)和列存储(Column-Based)。业界对两种存储方案有很多争持,集中焦点是:谁能够更有效地处理海量数据,且兼顾安全、可靠、完整性。从目前发展情况看,关系数据库已经不适应这种巨大的存储量和计算要求,基本是淘汰出局。在已知的几种大数据处理软件中,Hadoop的HBase采用列存储,MongoDB是文档型的行存储,Lexst是二进制型的行存储。
全栈程序员站长
2022/09/14
4.8K0
行存储 VS 列存储[通俗易懂]
SQL 行转列,列转行
PIVOT 后跟一个聚合函数来拿到结果,FOR 后面跟的科目是我们要转换的列,这样的话科目中的语文、数学、英语就就被转换为列。IN 后面跟的就是具体的科目值。
网罗开发
2021/01/29
2.9K0
SQL 行转列,列转行
MySQL根据条件返回bool值
有时候我希望从数据库中拉取数据时能够获得一些较为复杂的信息,比如获取活动信息时还想知道当前用户是否参加了活动(需要再做一次查询才能判断),为了简化后台逻辑,避免查询两次获得两组结果再合并,我发现了CASE语句。
gojam
2019/05/14
4.2K0
SQL中的行转列和列转行
SQL是IT行业很多岗位都要求具备的一项能力,对于数据岗位而言更是如此,甚至说扎实的SQL基础也往往是入职这些岗位的必备技能。而在SQL面试中,一道出镜频率很高的题目就是行转列和列转行的问题,可以说这也是一道经典的SQL题目,本文就这一问题做以介绍分享。
luanhz
2021/06/25
7.2K0
行存储和列存储的优缺点
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/159308.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/14
1.7K0

相似问题

根据行值获取列的总和

36

根据oracle中的列获取行的总和

40

根据其他列中的总和返回列中的值

20

SQL根据日期将总和行分拆成列

20

Python,Pandas:根据列值合并某些行的总和

125
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文