有两个表 一个是信息分类表,一个是用户反馈信息表。
其中信息分类表有个分类是投诉类,还有其他分类,跟此无关不累述。
而公司呢有很多实体店,“用户反馈信息表”里有个字段是店的名字。还有一个字段是 此投诉是否为有效投诉。
现在两个表联合,要求得出每个店的有效投诉类的信息和所有信息数量的的比(注意不是和所有投诉类的信息量的比)。 如何写?
其中信息分类表有个分类是投诉类,还有其他分类,跟此无关不累述。
而公司呢有很多实体店,“用户反馈信息表”里有个字段是店的名字。还有一个字段是 此投诉是否为有效投诉。
现在两个表联合,要求得出每个店的有效投诉类的信息和所有信息数量的的比(注意不是和所有投诉类的信息量的比)。 如何写?
其中“信息分类表”有个分类是投诉类,还有其他分类,跟此无关不累述。
而公司呢有很多实体店,“用户反馈信息表”里有个字段是店的名字。有一个CategoryID表明信息的分类ID,还有一个字段是 IsReal 表明此投诉是否为有效投诉。
现在两个表联合,要求得出每个店的有效投诉类的信息数量和所有信息数量的比(注意不是和所有投诉类的信息量的比)。 如何写?
select @All = count(1) from 反馈表
join 信息分类表
on 信息分类表.CategoryID = 反馈表.CategoryID
where IsReal=有效 and CategoryID = 投诉类select 商店名, count(1),count(1) / @All from 反馈表
join 信息分类表
on 信息分类表.CategoryID = 反馈表.CategoryID
where IsReal=有效 and CategoryID = 投诉类
group by 商店名
create table feedback
(
id INT IDENTITY(1,1) primary key not null,
shopName varchar(50) null,
isValid tinyint default(0),
classID INT NOT null
)
go
CREATE TABLE class(id INT IDENTITY(1,1) primary NULLnot null,className VARCHAR(50) NULL)
GO
INSERT INTO class SELECT '投诉类'INSERT INTO feedback SELECT 'shop1',1,1
INSERT INTO feedback SELECT 'shop1',0,1
INSERT INTO feedback SELECT 'shop1',1,1
INSERT INTO feedback SELECT 'shop2',1,1
INSERT INTO feedback SELECT 'shop1',1,1
INSERT INTO feedback SELECT 'shop2',1,1
INSERT INTO feedback SELECT 'shop2',1,1
INSERT INTO feedback SELECT 'shop1',1,1
INSERT INTO feedback SELECT 'shop3',1,1
INSERT INTO feedback SELECT 'shop1',0,1
INSERT INTO feedback SELECT 'shop2',1,1
INSERT INTO feedback SELECT 'shop3',1,1
SELECT shopname,比例=(COUNT(1)/(SELECT CAST(COUNT(1) AS FLOAT) FROM feedback WHERE shopName=o.shopName)) FROM feedback AS o WHERE isvalid=1 AND classID=(SELECT classid FROM class WHERE classname='投诉类') GROUP BY shopname