1

Я работаю в MS Excel 2007 с данными, касающимися серии сообщений на форуме. Каждое сообщение представлено строкой данных, которая включает уникальный идентификатор для каждого сообщения, уникальный идентификатор пользователя, который его опубликовал, уникальный идентификатор обсуждения, а также несколько столбцов описательных переменных. Одной из этих описательных переменных является то, поддерживает ли публикация обсуждение («за» или «против»). Есть несколько тысяч пользователей и несколько тысяч постов.

1. Я хочу найти случаи, когда пользователи сделали более одного сообщения в одном обсуждении. (Вероятно, несколько десятков случаев)

2. Я хочу, чтобы пользователи размещали как "за", так и "против". (Вероятно, горстка)

Вопрос номер один является важным. Второе, вероятно, будет легким, когда я разберусь # 1, так как экземпляров немного.

В качестве альтернативы, как я могу сделать это с помощью Access (с которым я гораздо менее знаком)?

1 ответ1

2

Это проще в 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;

Это немного хак с моей стороны; Я уверен, что для выполнения работы должен быть более эффективный запрос, но, тем не менее, это сработает.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .