【发布时间】:2017-07-15 14:14:59
【问题描述】:
我对如何在 SQL 中执行此操作感到头疼。我有一张桌子:
| User_id | Question_ID | Answer_ID |
| 1 | 1 | 1 |
| 1 | 2 | 10 |
| 2 | 1 | 2 |
| 2 | 2 | 11 |
| 3 | 1 | 1 |
| 3 | 2 | 10 |
| 4 | 1 | 1 |
| 4 | 2 | 10 |
它保存用户对特定问题的答案。一个问题可能有多个答案。一个用户不能两次回答同一个问题。 (因此,每个 {User_id, Question_ID} 只有一个 Answer_ID)
我正在尝试查找此查询的答案:对于特定的问题和答案 ID(与同一问题相关),我想找到具有给定答案的用户对 OTHER 问题给出的最常见答案。
例如,对于上表:
For question_id = 1 -> For Answer_ID = 1 - (Question 2 - Answer ID 10)
For Answer_ID = 2 - (Question 2 - Answer ID 11)
是否可以在一个查询中完成?应该在一个查询中完成吗?我应该只使用存储过程或 Java 吗?
【问题讨论】:
-
因此将其分解为多个集合并考虑“当前”记录 ..1) 选择 where question_id = current_question_id 和 user_id current_user_Id。 2)创建临时表,其中问题列表当前问题,按问题ID汇总记录数排序/排序。如果您想包含原始用户的答案,可能会在结果中添加 1... 然后从那里开始。但这是我的思考过程……将其分解为一系列可以重新组合在一起的临时表。
标签: mysql