2

我有一个名为 urltracker 的表,其中包含有关单击特定 URL 的次数的信息。该表结构为 4 列 id、urlclicked、referrer 和时间戳。每次单击 url 时,urltracker 都会在表中创建另一个条目。

我想要做的是显示一个特定的 url 和它被点击的次数,然后用户可以通过点击来深入了解数据,以显示这个 url 被点击的所有特定时间。

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

我的想法是对的还是有更简单的方法?

4

4 回答 4

3

像这样的东西应该可以解决问题:首先:

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

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

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

显示详细信息。

于 2008-12-18T11:37:21.947 回答
2

要考虑的一件事是使用两个表 - 一个包含唯一 url 的表和另一个存储点击信息的表(或者使用唯一的序列号来加入它们,或者使用 url(因为它是唯一的))

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

于 2008-12-18T11:36:23.727 回答
0

您应该能够执行以下操作来获取每个 URL 的总数:

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

这就是你所追求的吗?

于 2008-12-18T11:37:34.850 回答
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 

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

于 2008-12-18T11:50:23.917 回答