如何在Group表达式中取最前面的记录呢?
SQL如下:
select pv_referurl AS 来路页面 ,pv_referdomain AS 来路域名 ,pv_siteid AS 网站ID ,pv_pagetitle AS 页面标题 ,pv_source AS 来路分类 ,COUNT(pv_id) AS PV ,COUNT(DISTINCT pv_visitorid) AS 独立访客 ,COUNT(DISTINCT pv_ip) AS IP ,COUNT(DISTINCT pv_visitid) AS 访问次数 from pandian.pd_pv1 t1 --where page_visittime >= TRUNC(SYSDATE) group by pv_referurl,pv_referdomain,pv_siteid,pv_pagetitle,pv_source order by pv_siteid 执行结果见附件中的图 现在是8条记录,每个网站ID都有两个,但是我现在想只取其中的1个,比如网站ID为1的有两条记录,一个记录编号为1,一个为2,我就只显示为1的,靠前的一条记录。这样下来就只有4条记录 我想到是不是用top 怎么实现这个效果呢? fan0124 上传了这个附件:
2010-3-11 17:41
测试表-来路页面分析.jpg (911.34 KB)
select max(页面标题),网站id from t group by 网站id
select * from
( select pv_referdomain ,pv_siteid ,row_number() over (partition by pv_referdomain order by pv_siteid) row_id from pandian.pd_pv1 ) where row_id = 1; |
|