计算mySQL列中某些数据的实例数

时间:2008-12-18 11:29:39

标签: mysql aggregate-functions

我有一个名为urltracker的表,其中包含有关特定网址被点击的次数的信息。该表分为4列id,urlclicked,referrer和timestamp。每次点击网址时,urltracker都会在表格中创建另一个条目。

我想要做的是显示一个特定网址及其被点击的次数,然后用户可以通过点击显示该网址被点击的所有特定时间来深入查看数据。

我不是sql专家,但这听起来像我需要首先显示所有不同的URL,然后是子查询,显示此特定URL的所有条目。

我是否正确地思考这个或者有更简单的方法吗?

4 个答案:

答案 0 :(得分:3)

这样的事应该可以解决问题: 第一:

SELECT urlclicked, 
       COUNT(*)
  FROM urltracker
GROUP BY urlclicked

然后当用户点击某个网址时:

SELECT id, 
       urlclicked, 
       referrer,
       timestamp
FROM urltracker
WHERE urlclicked = ?clickedUrl

显示详细信息。

答案 1 :(得分:2)

要考虑的一件事是使用两个表 - 一个表保存唯一的URL,另一个表存储点击信息(并使用唯一的序列号来连接它们,或者url(因为它是唯一的))

但是要回答您的查询问题 - 是的,我会有一个查询来显示URL,第二个查询来获取特定URL的数据(仅当/当用户请求该信息时)。

答案 2 :(得分:0)

您应该可以执行以下操作来获取每个网址的总计:

SELECT urlclicked, COUNT(urlclicked) AS total
FROM urltracker
GROUP BY urlclicked

这是你追求的吗?

答案 3 :(得分:0)

是的,以某种方式对你说:

SELECT id, 
       tb1.urlclicked, 
       referrer,
       timestamp, tb2.totaltimesclicked
FROM urltracker as tb1
inner join 
(SELECT urlclicked, 
       COUNT(urlclicked) as totaltimesclicked
  FROM urltracker
GROUP BY urlclicked) as tb2
on tb1.urlclicked = tb2.urlclicked 

这将显示所有信息以及每个网址被点击的次数。