sql - 选择顶部重复记录
问题描述
我目前有多条记录,但我只需要一条记录。我已经尝试过 Cross apply,但似乎我错过了一些我自己似乎无法 ping 的东西。相反,我得到了一个完全不同的值,它甚至不在提供的表中的记录中。
任何帮助将不胜感激。
id subject enrollmentdate roomNum
00045 science 3-3-2016 98
00045 science 3-3-2016 52
00089 math 7-25-2017 13
00089 math 7-25-2017 56
00123 social studies 3-1-2016 02
00136 gym 5-2-2017 01
00159 math 9-2-2017 96
询问:
select d.id, c.subject, c.Enrollmentdate, ds.roomNum
from #classrooms as c
cross apply
(select top 1 roomNum, subject,Enrollmentdate
from #classrooms
where subject = c.subject
and enrollmentdate = c.enrollmentdate
order by id desc) as ds
结果:
id subject enrollmentdate roomNum
00045 science 3-3-2016 66
00045 science 3-3-2016 66
解决方案
如果您只需要一个(并且不在乎哪一个),那么这样的事情可能会有所帮助:
select id,
subject,
enrollmentdate,
max(roomnum) max_roomnum
from #classrooms
group by id,
subject,
enrollmentdate;
推荐阅读
- python - Tkinter - 为什么我的所有 Checkbuttons 的状态都链接在一个循环中?
- php - 如何每次在 iframe 中加载 html 页面而不在浏览器上存储或缓存
- r - 如何根据原始索引合并两个向量?
- javascript - 防止多个 BrowserWindow 打开电子
- node.js - 使用令牌(JWT?)管理安全请求
- javascript - 遍历图像集合 Google Earth Enigne
- machine-learning - 将 YOLO 与 vgg 分类器连接
- java - MyBatis 映射器使用反射插入注释
- c++ - 如何理解 C++17 标准参考中的 [intro.object]/3?
- ssl - 过期的 ssl 证书是否与 SSL pinning 中的无效证书类似?