mysql - 使用最新的记分卡列出学生的所有详细信息
问题描述
我有一个表格,其中输入了单元测试结果以及学生详细信息。我想要每个学生的所有详细信息,但在单元测试列中包含最新条目。
例如,如果我尝试搜索 sem4 数据,我在其中输入了 3 次学生记录,因为他进行了 3 次重新测试。我想要每个学生的详细信息以及他的最新测试结果。
SELECT * FROM table where sem= 4 GROUP BY student_name ORDER BY last-date DESC;
这样,我的数据按学生姓名排序,而不是按测试结果的最新条目排序。这是过滤的因素之一。
有人可以为我提供这种情况的 SQL 查询吗?
解决方案
您必须使用group by student_id with having clause
每个学生 ID 的最新记录,例如
select student_id, name, sem,last_date
as
last_updated from
table group by student_id, name,sem having last_date=max(last_date)
推荐阅读
- android - 使用 Livedata 时如何为 RecyclerView 使用 Filter SearchView?
- javascript - 如何在 openlayers 中添加自定义比例线?
- python-3.x - 如何使用 py2neo.ogm (v3) 为不同类型的节点创建双向关系?
- c# - 删除“csproj”中没有副作用的“obj”文件夹
- r - 如何使用 r 和 Latex 创建矩阵(分析后)并将其导出为表格?
- sql - 选择 max dense_rank() = value 的所有位置?
- terraform - terraform中的“环境中至少需要一个字段”错误
- jquery - 如何在鼠标悬停时开始滑动,并在第 2 周期滑块插件中鼠标移出时设置第一张图像
- android - 我想保存一个静态密钥并需要发送标头,android 应用程序中最好和安全的地方是什么?
- android - 比率关键线(如 Google 的 Material Design 中所述)如何应用于计算?