select A.linkid,A.hot,B.id,B.len,count(1)*1.0/4 as 结果 into table2010
from jamlinks201007 A left join Linkgroupbyring B
on A.linkid=B.linkid
where A.data in('20100701','20100705')
group by A.linkid,A.hot,B.len,B.id
having count(1)*1.0/4>0.1各位看官,你看哦,上面这一句SQL我写好了,是对的,得到下表:编号 hot 区域 长度 属性
17004 0 112 49.6295008777284 0.500000
22044 0 113 777.646389288057 0.250000
11323 2 113 427.394712578715 0.250000
18527 1 113 21.2343958322971 0.500000
27735 0 112 315.116703496882 0.250000
15831 0 112 68.8638739609707 0.500000
19326 0 207 405.893991414224 0.500000
27470 2 207 951.585967187522 0.500000
24011 1 112 21.7653456018986 0.500000
------------------------------------------------------------然后能为了得到下表,我寻思着,应该上面查出来的数据新建一个表撒?
对吧,于是你看我上面的SQL里面有一句into对吧要求查询出来,然后把相同区域的长度值全部相加,得到下面这个表于是我可以用SQL select id,sum(len) from table2010 group by id区域 总长度
112 xxxxxxxxxxxxxxxx
113 xxxxxxxxxxxxxxxx
207 xxxxxxxxxxxxxxxx 就得到了但是我郁闷啊~~~~~~~~为什么呢就是因为第一个SQL里面的into,我不想每次用户他们点击什么什么东西,都要into一次,因为第一次已经INTO了呀!对吧
唉~~~~~~~~~~~咋办呢咋办呢?求解~~~~~~~~~~~~~~~要解决哦
from jamlinks201007 A left join Linkgroupbyring B
on A.linkid=B.linkid
where A.data in('20100701','20100705')
group by A.linkid,A.hot,B.len,B.id
having count(1)*1.0/4>0.1各位看官,你看哦,上面这一句SQL我写好了,是对的,得到下表:编号 hot 区域 长度 属性
17004 0 112 49.6295008777284 0.500000
22044 0 113 777.646389288057 0.250000
11323 2 113 427.394712578715 0.250000
18527 1 113 21.2343958322971 0.500000
27735 0 112 315.116703496882 0.250000
15831 0 112 68.8638739609707 0.500000
19326 0 207 405.893991414224 0.500000
27470 2 207 951.585967187522 0.500000
24011 1 112 21.7653456018986 0.500000
------------------------------------------------------------然后能为了得到下表,我寻思着,应该上面查出来的数据新建一个表撒?
对吧,于是你看我上面的SQL里面有一句into对吧要求查询出来,然后把相同区域的长度值全部相加,得到下面这个表于是我可以用SQL select id,sum(len) from table2010 group by id区域 总长度
112 xxxxxxxxxxxxxxxx
113 xxxxxxxxxxxxxxxx
207 xxxxxxxxxxxxxxxx 就得到了但是我郁闷啊~~~~~~~~为什么呢就是因为第一个SQL里面的into,我不想每次用户他们点击什么什么东西,都要into一次,因为第一次已经INTO了呀!对吧
唉~~~~~~~~~~~咋办呢咋办呢?求解~~~~~~~~~~~~~~~要解决哦
写拼装语句吧
set @F编号=''
select @F编号=编号 from table2010 where 编号=?(要检查的用户的编号)
if @F编号=''
begin
return -1
end
select A.linkid,A.hot,B.id,B.len,count(1)*1.0/4 as 结果
from jamlinks201007 A left join Linkgroupbyring B
on A.linkid=B.linkid
where A.data in('20100701','20100705')
group by A.linkid,A.hot,B.len,B.id
having count(1)*1.0/4>0.1
) t group by id