在客户订购表中统计商品被订购数量超过500个的商品编号。

SQL with cube
如何查询在客户订购表中统计商品被订购数量超过500个的商品编号。
1、TB_Buy的表结构

CREATE TABLE [dbo].[TB_Buy](
	[BID] [int] NOT NULL,
	[CID] [char](10) NOT NULL,
	[PID] [char](10) NOT NULL,
	[BTime] [datetime] NOT NULL,
	[BNum] [int] NOT NULL
) ON [PRIMARY]

GO

2、向表中插入数据

INSERT [dbo].[TB_Buy] ([BID], [CID], [PID], [BTime], [BNum]) VALUES (1, N'CR001     ', N'PD002     ', CAST(0x0000A26500000000 AS DateTime), 400)
INSERT [dbo].[TB_Buy] ([BID], [CID], [PID], [BTime], [BNum]) VALUES (2, N'CR002     ', N'PD001     ', CAST(0x0000A28B00000000 AS DateTime), 200)
INSERT [dbo].[TB_Buy] ([BID], [CID], [PID], [BTime], [BNum]) VALUES (3, N'CR002     ', N'PD004     ', CAST(0x0000A28200000000 AS DateTime), 100)
INSERT [dbo].[TB_Buy] ([BID], [CID], [PID], [BTime], [BNum]) VALUES (4, N'CR002     ', N'PD008     ', CAST(0x0000A29500000000 AS DateTime), 300)
INSERT [dbo].[TB_Buy] ([BID], [CID], [PID], [BTime], [BNum]) VALUES (5, N'CR003     ', N'PD004     ', CAST(0x0000A28700000000 AS DateTime), 100)
INSERT [dbo].[TB_Buy] ([BID], [CID], [PID], [BTime], [BNum]) VALUES (6, N'CR004     ', N'PD003     ', CAST(0x0000A23F00000000 AS DateTime), 150)
INSERT [dbo].[TB_Buy] ([BID], [CID], [PID], [BTime], [BNum]) VALUES (7, N'CR004     ', N'PD005     ', CAST(0x0000A23F00000000 AS DateTime), 80)
INSERT [dbo].[TB_Buy] ([BID], [CID], [PID], [BTime], [BNum]) VALUES (8, N'CR004     ', N'PD006     ', CAST(0x0000A25100000000 AS DateTime), 50)
INSERT [dbo].[TB_Buy] ([BID], [CID], [PID], [BTime], [BNum]) VALUES (9, N'CR005     ', N'PD002     ', CAST(0x0000A26900000000 AS DateTime), 300)
INSERT [dbo].[TB_Buy] ([BID], [CID], [PID], [BTime], [BNum]) VALUES (10, N'CR007     ', N'PD002     ', CAST(0x0000A1EF00000000 AS DateTime), 50)
INSERT [dbo].[TB_Buy] ([BID], [CID], [PID], [BTime], [BNum]) VALUES (11, N'CR008     ', N'PD001     ', CAST(0x0000A27A00000000 AS DateTime), 280)
INSERT [dbo].[TB_Buy] ([BID], [CID], [PID], [BTime], [BNum]) VALUES (12, N'CR008     ', N'PD003     ', CAST(0x0000A26500000000 AS DateTime), 200)
INSERT [dbo].[TB_Buy] ([BID], [CID], [PID], [BTime], [BNum]) VALUES (13, N'CR008     ', N'PD004     ', CAST(0x0000A26D00000000 AS DateTime), 100)
INSERT [dbo].[TB_Buy] ([BID], [CID], [PID], [BTime], [BNum]) VALUES (14, N'CR008     ', N'PD006     ', CAST(0x0000A25100000000 AS DateTime), 150)

3、用select及group by 语句查询
**

group by *1,2 with cube(这样会根据1,*2做一个汇总计算,即group by后的所有列)

**
同理,with rollup,只对group by 分组后的第一个字段做汇总计算。
cube运算符在 SELECT 语句的 GROUP BY 子句中指定。该语句的选择列表应包含维度列和聚合函数表达式。GROUP BY 应指定维度列和关键字 WITH CUBE。结果集将包含维度列中各值的 所有 可能组合,以及与这些维度值组合相匹配的基础行中的聚合值。

 select  BNum,PID,Sum(BNum) as 订购数量
 from TB_Buy 
 group by BNum,PID,with cube 
 having SUM(BNum)>500
 order by PID
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

笑着看明天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值