sql数据库如何统计总订单数量大于某值的记录

 时间:2024-10-13 23:47:38

1、创建一个临时表,用于演示sqlserver数据库中,如何在订单表上,先分类统计,然后再次筛选数据IF OBJECT_ID('tempdb..#tblOrder') IS NOT NULL DROP TABLE #tblOrder;CREATE TABLE #tblOrder( OrderID varchar(50), -- 订单号 OrderLine int, -- 订单行号 OrderTotal int -- 订单数量 );

sql数据库如何统计总订单数量大于某值的记录

2、往临时表中1插入几行测试数据,模拟莳洙橄膺订单数据,此处假设是订单明细数据,所以订单号是可以重复的insert into #tblOrder(OrderID, OrderLi荏鱿胫协ne, OrderTotal) values('PO00001', 1, 1000);insert into #tblOrder(OrderID, OrderLine, OrderTotal) values('PO00001', 2, 2000);insert into #tblOrder(OrderID, OrderLine, OrderTotal) values('PO00001', 3, 3000);insert into #tblOrder(OrderID, OrderLine, OrderTotal) values('PO00002', 1, 4000);insert into #tblOrder(OrderID, OrderLine, OrderTotal) values('PO00003', 1, 5000);

sql数据库如何统计总订单数量大于某值的记录

3、查询临时表1中的测试数据select * from #tblOrder;

sql数据库如何统计总订单数量大于某值的记录

4、按照订单号汇总所有的数量,这个时候就需要使用到group by分组语句,以及sum统计函数select '订单号' = OrderID, '总数量' = sum(OrderTotal)from #tblOrdergroup by OrderID

sql数据库如何统计总订单数量大于某值的记录

5、在汇总完成订单数量的基础上,如何筛选出总订单数超过4000的订单号以及数量呢?最简撮劝丛食单的方式就是,嵌套SQL,再次筛选,实现方式如下select '订单号' = tmp.OrderID, '总数量' = tmp.OrderTotalfrom( select OrderID, OrderTotal = sum(OrderTotal) from #tblOrder group by OrderID)tmpwhere tmp.OrderTotal > 4000

sql数据库如何统计总订单数量大于某值的记录

6、虽然,上面的SQL也实现了需求,但是,看起来SQL语句较多。如何才能不使用嵌套SQL呢?先看下面的SQL,表面上看起来,有点像这么回事,但是,实际却达不到效果。下面的SQL统计的是,订单明细数量大于4000的值汇总,而不是总订单数量大于4000的订单数量汇总select '订单号' = OrderID, '总数量' = sum(OrderTotal)from #tblOrderwhere OrderTotal > 4000group by OrderID

sql数据库如何统计总订单数量大于某值的记录

7、当实际业务再复杂一些,获取的字段再多一些的时候,不想使用嵌套SQL的时候,就可以使用having语句了select '订单号' = OrderID, '总数量' = sum(OrderTotal)from #tblOrdergroup by OrderIDhaving sum(OrderTotal) > 4000

sql数据库如何统计总订单数量大于某值的记录
  • SQL Server如何利用查询创建一张表
  • SQL怎么改表名
  • sql出现列名无效的原因
  • sql求某列的和、平均值、最大值、最小值、行数
  • 数据库SQL语句中,如何统计平均值?avg函数使用
  • 热门搜索
    被臭虫咬了怎么办 风景图片大全 红鲫鱼怎么养 balloon怎么读音 鸡蛋饼的家常做法 五行属土的字大全 35图库大全 骨结核的治疗方法 闭经的治疗方法 天龙八部视角怎么调远