我正在尝试选择不同的前10个网址,它的计数(网址)和大小从log_table加入其他表格。
我尝试了以下SQL Server查询:
select distinct top 10
url, count(url) as hits,
size as data
from log_table
where log_table.IP in
(select IPAddress from IP where IP.IPId in
(select IPId from userIP where userIP.userId in
(select userId from Users)))
group by url, size
order by hits desc它没有给我不同的url。但是,当我尝试以下没有大小的查询时,它给出了不同的url和命中结果。
select distinct top 10
url, count(url) as hits
from log_table
where log_table.IP in
(select IPAddress from IP where IP.IPId in
(select IPId from userIP where userIP.userId in
(select userId from Users)))
group by url
order by hits desc我需要做什么来选择不同的网址,它的命中和大小使用。网址、大小均来自log_table表格。
任何帮助都是非常感谢的。
谢谢。
发布于 2010-07-21 22:21:08
您的第一个查询没有返回不同的url的原因是因为您同时按url和大小进行分组。当您对这两列进行分组时,您将为每个值组合获得一行。因此,如果url "a“的大小为5和10,则将创建两个组,一个为5,一个为10。您必须在size列上使用一些聚合函数来获取某些内容,例如:
select top 10
url, count(url) as hits
, max(size) as size
from log_table
where log_table.IP in
(select IPAddress from IP where IP.IPId in
(select IPId from userIP where userIP.userId in
(select userId from Users)))
group by url
order by hits deschttps://stackoverflow.com/questions/3155463
复制相似问题