我有一个定制的分析系统正在运行,我想编写一个查询来返回第一次访问特定页面的用户。表格的相关部分设置如下,其中包含一些简单的数据:
pageviews Table
+----+---------------------+----------+-------------+
| id | time_in | users_id | articles_id |
+----+---------------------+----------+-------------+
| 0 | 2013-08-15 00:00:00 | 0 | 0 |
| 1 | 2013-08-16 00:00:00 | 0 | 1 |
| 2 | 2013-08-17 00:00:00 | 1 | 1 |
| 3 | 2013-08-18 00:00:00 | 1 | 0 |
| 4 | 2013-08-19 00:00:00 | 1 | 1 |
| 5 | 2013-08-20 00:00:00 | 2 | 1 |
+----+---------------------+----------+-------------+
注意:我的数据库中的ID字段实际上使用的是GUID,而不是像这个简单示例中使用整数。
现在,如果我想查看谁首次阅读了文章1
,我希望我的查询返回用户1
和2
,而不是0
,因为用户0
在该网站上首次访问的是文章0
。反之,如果我想查看谁首次阅读了文章0
,查询将只返回用户0
。
以下是我的查询:
SELECT
*
FROM
pageviews
WHERE
articles_id = 1
GROUP BY
users_id
ORDER BY
time_in
但是这个查询对于所有阅读过文章
1
的用户返回了不同的用户ID,没有过滤掉那些没有将其作为第一个结果看到的用户。我感觉我的查询方向有误,所以我转向向你们求助。提前感谢。