日期:2014-05-17  浏览次数:20441 次

有个sql统计语句不会写,求教
我有一个表,精简了说就是记录访问者IP以及访问时间,字段与数据如下——
表table1
ipaddress dt
192.168.1.254 2013-03-05 15:41:17.047
220.181.89.209 2013-03-05 15:44:23.713
65.55.52.89 2013-03-05 15:46:28.643
65.55.52.89 2013-03-05 15:46:31.200
220.181.89.209 2013-03-05 15:49:34.533

我已经写了一句sql语句,用来统计当天有多少个访问量,如下——
select convert(varchar(10),dt,120) as a1,
count(ipaddress) as a2
from table1 
group by convert(varchar(10),dt,120) order by a1 DESC

a2字段显示的是总数,可是我现在想增加一个字段a3,希望能显示每一天一共有多少个不同的ip地址,如我举例那5行数据,统计出的结果应该为——
a1 a2 a3
2013-03-05 5 3

请问这个带a3的语句怎么写?

sql group?by

------解决方案--------------------
select convert(varchar(10),dt,120) as a1,
count(ipaddress) as a2,
count(distinct ipaddress) as a3
from table1
group by convert(varchar(10),dt,120) order by a1 DESC