我正在 MS Excel 2007 中处理一系列论坛帖子的数据。每篇帖子都由一行数据表示,其中包括每篇帖子的唯一 ID、发布该帖子的用户的唯一 ID、讨论的唯一 ID 以及几列描述性变量。这些描述性变量之一是帖子是否支持讨论(是赞成还是反对)。有几千名用户和几千篇帖子。
1. 我想找到用户在同一讨论中发过多个帖子的情况。(可能有几十个)
2. 我想要用户同时发表“赞成”和“反对”意见的实例。(可能很多)
第一个问题很重要。一旦我搞清楚了第一个问题,第二个问题可能就容易多了,因为这种情况很少。
或者,我如何使用 Access(我不太熟悉它)来实现这一点?
答案1
在 Access 中这比在 Excel 中更容易。
在 Access 中,使用导入向导从 Excel 导入数据。将数据放入表中后,创建一个新查询,转到 SQL 视图,然后使用如下所示的查询来查找在单个讨论中发帖多次的用户:
SELECT DiscussionID, UserID, Count(PostID) as Number_of_Posts FROM Sheet1
GROUP BY DiscussionID, UserID
HAVING Count(UserID)>1;
执行后,将以表格形式返回 DiscussionID、UserID 以及该用户在讨论中发布的帖子数(每个帖子数超过一个)。当然,您必须更改表格和字段名称以匹配您的数据库。
要查找在单个讨论中同时发表赞成和反对意见的用户,可以使用以下查询:
SELECT DiscussionID, UserID, SUM(Number_of_Posts) as Posts
FROM (SELECT DiscussionID, UserID, Pro_Con, Count(PostID) as Number_of_Posts FROM Sheet1
GROUP BY DiscussionID, UserID, Pro_Con)
GROUP BY DiscussionID, UserID
HAVING Count(UserID)=2;
这对我来说有点像黑客行为;我确信必须有一个更有效的查询来完成这项工作,但无论如何,这都会起作用。