当前位置: 代码迷 >> Sql Server >> GROUP BY 多表查询解决思路
  详细解决方案

GROUP BY 多表查询解决思路

热度:80   发布时间:2016-04-24 09:01:50.0
GROUP BY 多表查询
问题是这样的(  表一 如下   ):

id            ip           user           time                            mac

1       1.1.1.1         a            2015-6-6           0000-1111-2222-3333

1       1.1.1.1         a            2015-6-6           9999-0000-4444-5555

1       2.2.2.2        a            2015-6-6           7777-1111-2222-66666

1       2.2.2.2        a            2015-6-6           8888-99999-2222-00000

表二 数据如下:
id            ip                    time                pv

1       1.1.1.1            2015-6-6           123

2       2.2.2.2            2015-6-6           456

通过第一表ip去重复后sql是这样写的:
select ip,count(*) as macs from 表一 where user='a'  and   time=' 时间 '   group by  ip ORDER BY macs desc

但是现在想调出表二里面对应的IP相同日期的 PV 数      该如何写呢,麻烦指点    谢谢


------解决思路----------------------
select T1.ip,count(*) as macs,T2.pv
from 表一 T1
JOIN 表二 T2 ON T1.ip=T2.ip AND T1.[time]=T2.[time]
where user='a'  and   time=' 时间 '
group by T1.ip,T2.pv
ORDER BY macs desc
------解决思路----------------------
select T1.ip,count(*) as macs,T2.pv
from 表一 T1
JOIN 表二 T2 ON T1.ip=T2.ip AND T1.[time]=T2.[time]
where T1.[user]='a' and T2.[time]='2015-6-6'
group by T1.ip,T2.pv
ORDER BY macs desc
  相关解决方案