暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Mysql获取聚合函数之外的字段信息

数据管理idata 2021-03-14
739


完整sql语句

select * 
from `采购订单序时簿` a
WHERE a.`供应商` in (
SELECT b.供应商 from
(select 供应商,物料名称,规格型号,sum(数量) as 采购总量
from `采购订单序时簿`
GROUP BY 供应商,物料名称,规格型号) b
WHERE 采购总量>5000)


一、源数据结构



二、依据指定的条件聚合汇总数量列数据之和


汇总统计出同一家供应商下同一种物料总的采购量。

#汇总统计出同一家供应商下同一种物料总的采购量
select 供应商,物料名称,规格型号,sum(数量) as 采购总量
from `采购订单序时簿`
GROUP BY 供应商,物料名称,规格型号


三、依据指定的条件聚合汇总数量列数据后再筛选


在上面的结果里,再筛选获取采购总量超过5000的供应商列表。

#在上面的结果里,再筛选获得采购总量超过5000的供应商列表
SELECT b.供应商 from
(select 供应商,物料名称,规格型号,sum(数量) as 采购总量
from `采购订单序时簿`
GROUP BY 供应商,物料名称,规格型号) b
WHERE 采购总量>5000


四、获取聚合函数之外的字段信息


到此,要获取查询语句中聚合函数之外的字段信息,就相对好理解了。在上面两步的查询过程后,再进一步提出要求:在源表中提取出采购总量超过5000的全部订单的全部信息。

select * 
from `采购订单序时簿` a
WHERE a.`供应商` in (
SELECT b.供应商 from
(select 供应商,物料名称,规格型号,sum(数量) as 采购总量
from `采购订单序时簿`
GROUP BY 供应商,物料名称,规格型号) b
WHERE 采购总量>5000)


五、总结


1、子查询语句应该放置在括号中;

2、除非主查询语句有多个字段用于与子查询比较,否则子查询的select子句里应该只有一个字段;

3、返回多条记录的子查询只能与多值操作符,如in关键字,配合使用;

4、将一个查询的结果作为查询对象给另一个查询时,则该查询需要重命名。



2021.3.14

今天是一个特别的日子,愿你有爱也有被爱。

文章转载自数据管理idata,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论