我有一个自定义的书面分析系统正在运行,我正在尝试编写一个查询,该查询返回作为他们第一次点击登陆特定页面的用户。表格的相关部分是这样设置的,带有一些简单的数据:
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
,则查询只会返回 user 0
。
到目前为止,这是我的查询:
SELECT
*
FROM
pageviews
WHERE
articles_id = 1
GROUP BY
users_id
ORDER BY
time_in
但这会为所有已阅读文章的用户返回不同的用户 ID 1
,而不是过滤掉没有将其视为第一个结果的用户。我觉得我的查询方向错误,所以我转向你们。
提前致谢。