最经有人问我分组统计的问题,感觉很简单 ,拿起笔却没有完整下下来,今天索性自己整理一下
产品表 Products
CREATE TABLE [dbo].[Products](
[Id] [int] IDENTITY(1,1) NOT NULL,
[TypeID] [int] NOT NULL,
[BrandID] [int] NOT NULL,
[ProName] [nvarchar](50) NOT NULL,
[Description] [nvarchar](500) NULL,
[Attribute] [nvarchar](500) NULL,
[Overview] [nvarchar](500) NULL,
[Price] [numeric](18, 2) NULL,
[Promotion] [numeric](18, 2) NULL,
[ImgData] [varbinary](max) NULL,
[ImgMimeType] [varchar](50) NULL,
PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
问题 一:根据产品表,统计一下表中每种类型产品的销售额
分析题目要求,
分析一:说到分组统计 大家知道 肯定要用到 group by来进行分组 ,group by 添加你要分组的字段,要求按照类型分组,说明 group by 后面的字段是TypeID 即 group by typeID, 注意select 后面跟的查询字段 必须是group by 后面的字段或者是聚合函数,否则执行语句会报错。
分析二:求和需要用到sum()函数,及sum(Price).
分析三:sql 语句即可写成 select typeID,sum(Price) fromProducts group by typeID
问题二:根据产品表,统计一下表中每种类型产品的销售额大于100的记录
分析题目要求,
分析一:说到分组统计 大家知道 肯定要用到 group by来进行分组 ,group by 添加你要分组的字段,要求按照类型分组,说明 group by 后面的字段是TypeID 即 group by typeID, 注意select 后面跟的查询字段 必须是group by 后面的字段或者是聚合函数,否则执行语句会报错。
分析二:求和需要用到sum()函数,及sum(Price).
分析三: 每种类型的产品销售额大于100 即条件过滤,在sql语法中条件过滤有where和having 两种类型的条件过滤,where用于对记录的过滤筛选且过滤筛选不能是聚合函数,having用于对分组后的组内记录进行过滤筛选且可以是聚合函数。分析四:sql 语句即可写成 select typeID,sum(Price) fromProducts group by typeID having sum(Price)>100