Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正确的SQL或ActiveRecord公式_Sql_Ruby On Rails_Activerecord - Fatal编程技术网

正确的SQL或ActiveRecord公式

正确的SQL或ActiveRecord公式,sql,ruby-on-rails,activerecord,Sql,Ruby On Rails,Activerecord,下面是一个场景。我有一个名为“情绪日志”的数据库,它记录了参加某个讲座的学生的实时“投票”,这些学生在特定的时间“参与”或“困惑”投票。讲座分为以整数表示的时段。架构如下所示: student_id: int sentiment_id: int lecture_id: int time_slot: int rails模型是感性的,我相信我想要的东西可以在一点聪明的SQL中完成,但我还没有成功地制定出它。我想要的是,给定一个目标时间段和一个目标讲座id,每个学生id都有一个记录的结果集,如下所示

下面是一个场景。我有一个名为“情绪日志”的数据库,它记录了参加某个讲座的学生的实时“投票”,这些学生在特定的时间“参与”或“困惑”投票。讲座分为以整数表示的时段。架构如下所示:

student_id: int
sentiment_id: int
lecture_id: int
time_slot: int
rails模型是感性的,我相信我想要的东西可以在一点聪明的SQL中完成,但我还没有成功地制定出它。我想要的是,给定一个目标时间段和一个目标讲座id,每个学生id都有一个记录的结果集,如下所示:

student_id: int
sentiment_id: int
lecture_id: int
time_slot: int
  • 学生证
  • 在学生投票的最近时段记录的情绪
比如说


  • 选择一个子集记录,其
    teaching\u id==target\u teaching\u id
    time\u slot您还没有告诉我们您的型号名称,因此我将其称为“Foo”。我还假设所有内容都在同一张表中。您没有描述学生id,它与用户id相同吗

    @foos=Foo.where("lecture_id = ? AND time_slot <= ?",target_lecture_id, target_time_slot).maximum(:time_slot, group: :student_id)
    
    结果使用示例:

    @foos.each do |foo|
        puts foo[0] #... (student_id)
        puts foo[1] #... (max time_slot)
    end
    

    抱歉,该模型名为感伤日志,学生id是它应该是的,用户id是一个输入错误,我会更正。谢谢!我会试试看:)