带有Count列的SQL,表示字段在同一个表中出现的次数

时间:2015-03-26 13:14:02

标签: sql select count

我的网页上有一个页面点击的数据库表(visitlog)。我在下面举例说明了一个简单的例子(是的,我知道IP:s无效......这只是一个简化的例子)

id    ip              date
================================
1     123.123.123     2013-01-01
2     123.123.123     2013-01-05
3     234.234.234     2013-01-22
4     45.67.89        2013-04-04
5     123.123.123     2013-12-25

我想要一个SELECT语句,它添加一个计数器列,显示该行中IP的存在次数:

date         ip            no_of_visits
=======================================
2013-01-01   123.123.123    3
2013-01-05   123.123.123    3
2013-01-22   234.234.234    1
2013-04-04   45.67.89       1
2013-12-25   123.123.123    3

即。 “SELECT date,ip, [这里有一些计数声明] FROM visitlog”

我不想对IP行进行分组。普通的COUNT函数对此不起作用......

2 个答案:

答案 0 :(得分:1)

使用相关的子选择来计算:

SELECT date, ip, (select count(*) from visitlog v2
                  where v1.ip = v2.ip) as no_of_visits
FROM visitlog v1

答案 1 :(得分:0)

SELECT date, ip, count(*) 
FROM visitlog 
GROUP BY date, ip 

这应该工作得很好。除非我在这里遗漏了什么。

编辑:哦!我明白你的意思。我会接受jarl的回答,最有意义的是每个ip和date给你一个记录,但是每个ip的计数。