gpt4 book ai didi

SQL 帮助 : select the last 3 comments for EACH student?

转载 作者:可可西里 更新时间:2023-11-01 08:38:26 25 4
gpt4 key购买 nike

我有两个表来存储小学教室的学生数据:

Behavior_Log 包含 student_id、comments、date 列Student_Roster 有 student_id、firstname、lastname 列

数据库用于存储对学生行为的每日评论,有时老师会在给定的一天对一个学生发表多条评论。

现在假设老师希望能够为每个学生提取最后 3 条评论的列表,如下所示:

Jessica 7/1/09 talking
Jessica 7/1/09 passing notes
Jessica 5/3/09 absent
Ciboney 7/2/09 great participation
Ciboney 4/30/09 absent
Ciboney 2/22/09 great participation

...等等全类

单个 SQL 查询必须为每个学生返回一组评论,以消除教师为类里面的每个学生运行单独查询的人工时间密集型需求。

我知道这听起来很像 SQL Statement Help - Select latest Order for each Customer但我需要为每个人显示最后 3 个条目,我不知道如何从这里到那里。

感谢您的建议!

最佳答案

我博客中这篇文章的稍微修改的解决方案:

SELECT  student_id, date, comment
FROM (
SELECT student_id, date, comment, (@r := @r + 1) AS rn
FROM (
SELECT @_student_id:= -1
) vars,
(
SELECT *
FROM
behavior_log a
ORDER BY
student_id, date DESC
) ao
WHERE CASE WHEN @_student_id <> student_id THEN @r := 0 ELSE 0 END IS NOT NULL
AND (@_student_id := student_id) IS NOT NULL
) sc
JOIN Student_Roster sr
ON sr.student_id = sc.student_id
WHERE rn <= 3

关于SQL 帮助 : select the last 3 comments for EACH student?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1087942/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com