【发布时间】:2017-05-18 07:17:41
【问题描述】:
我有一张桌子Question 有列
QuestionId, Question, AnswerId, Answer, AnsVotes(integer), AnsDate(Date)
一个QuestionId 可以有多个AnswerId,因此有多个条目。 AnswerId 是独一无二的
如何过滤记录以获取QuestionId 的AnswerId 的最大AnsVotes?如果多个条目的Ansvotes 相同,则获取具有最新AnsDate 的行(这是一个日期列)。
【问题讨论】:
-
在 sql 查询中搜索“有”,这允许过滤聚合值。您还需要尝试解决您的问题。你累什么了?
-
在我看来设计很糟糕:您正在为每个可能的答案复制问题数据。您应该将答案移动到另一个表并添加引用问题的外键
-
如果 AnswerId 是唯一的,我宁愿将此表称为
Answer,而不是Question。此外,您会在表格中重复一个问题(相同的 ID 并且希望是相同的文本)。这不好。改为将其设为单独的问题表。 -
感谢您的建议。将表格分成问题和答案
标签: sql sql-server group-by rank