【发布时间】:2014-04-03 14:11:24
【问题描述】:
这是场景。我有一个名为sentiment_log 的数据库,它记录来自参加某个讲座的学生的实时“投票”,他们在特定时间投票表示他们“参与”或“困惑”。讲座被划分为由整数表示的时间段。架构如下所示:
student_id: int
sentiment_id: int
lecture_id: int
time_slot: int
rails 模型是 SentimentLog 我相信我想要的可以用一点聪明的 SQL 来完成,但我没有成功地制定它。我想要的是,给定一个 target_time_slot 和一个 target_lecture_id,结果集每个 student_id 都有一条记录,如下所示:
- student_id
- student_id 投票的最近时隙记录的sentiment_id
比如,
- 选择带有
lecture_id == target_lecture_id和time_slot <= target_time_slot的记录子集 - 从中选择一个记录子集,其中每个学生都由他们最近的(即最大的)
time_slot表示。
这应该会为每个 student_id 生成一条记录。
到目前为止我还没有成功。
【问题讨论】:
标签: sql ruby-on-rails activerecord