22,209
社区成员
发帖
与我相关
我的任务
分享
create table a --网站访问统计表
(ID int,页面URL varchar(60),访问IP varchar(20),访问时间 varchar(20))
go
insert into a
select 1,'www.xxx.com','192.168.1.4','2010-10-16' union all
select 2,'www.xxx.com/shop/','192.168.1.4','2010-10-21' union all
select 3,'www.xxx.com','192.168.1.6','2010-10-21'
create table b --页面类别表
(类别ID varchar(20),类别名称 varchar(20),上级 varchar(20),页面URL varchar(60))
go
insert into b
select '001','首页','(顶级)','www.xxx.com' union all
select '001001','商城','001(首页)','www.xxx.com/shop/'
select 类别名称,count(访问IP)
from a
join b on a.页面URL =b .页面URL
--where left(访问时间,7)='2010-10' --添加时间判断 ,选择2010年10月
group by 类别名称
--result:
类别名称
-------------------- -----------
商城 1
首页 2
(2 行受影响)
--drop table a,b
--> 测试数据:#1
if object_id('tempdb.dbo.#1') is not null drop table #1
create table #1(ID int, 页面URL varchar(17), 访问IP varchar(11), 访问时间 datetime)
insert into #1
select 1, 'www.xxx.com', '192.168.1.4', '2010-10-16' union all
select 2, 'www.xxx.com/shop/', '192.168.1.4', '2010-10-21' union all
select 3, 'www.xxx.com', '192.168.1.6', '2010-10-21'
--> 测试数据:#2
if object_id('tempdb.dbo.#2') is not null drop table #2
create table #2(类别ID varchar(8), 类别名称 varchar(8), 上级 varchar(9), 页面URL varchar(17))
insert into #2
select '001', '首页', '(顶级)', 'www.xxx.com' union all
select '001001', '商城', '001(首页)', 'www.xxx.com/shop/'
select b.类别名称, count(1) 访问次数 from #1 a join #2 b on a.页面URL=b.页面URL
--where a.访问时间 ?
group by b.类别名称
/*
类别名称 访问次数
-------- -----------
商城 1
首页 2
*/