sql - 特定年份的最大值与连接
问题描述
我有两张桌子。Key
两者SID
都有 - 第一个表join
上key
有教育数据。例如SID
,获得的年资格 ( YearQual
) 和 QualLevel
。rows
每个可能有几个SID
第二张桌子event data
包括。事件年份 ( EventYear
),以及SID
我需要找到的是MAX
QualLevel
EventYear。
我正在使用 SQL Server。
我query
之后写过,当我只想在那一年时query
,我可以得到显示所有>=的MAX
QualLevel
曾经(与 无关event year
)或多行。qualification levels
event year
MAX
SELECT eventdata.S_ID, eventdata.eventyear,
max (education.qual_Level) as highqual
FROM education
left join eventdata
ON education.S_ID = eventdata.S_ID
WHERE education.YearQual<= eventyear
GROUP BY eventyear, qual_level, eventdata.S_ID
上面的代码给出了多行
解决方案
我需要找到 EventYear 的 MAX QualLevel。
如果你想要MAX
QualLevel
and EventYear
,不要包含eventdata.S_ID
在你的select
andgroup by
语句中。
因为你有多个S_ID
相同的eventyear
,所以你会得到重复的记录。
更改您的查询,如下所示。
SELECT eventdata.eventyear,
max (education.qual_Level) as highqual
FROM education
left join eventdata
ON education.S_ID = eventdata.S_ID
WHERE education.YearQual<= eventdata.eventyear
GROUP BY eventdata.eventyear
推荐阅读
- tensorflow - 前向传递后使用的 KL 损失到底在哪里?
- chef-infra - 在 InSpec 报告中获取版本变量作为输出
- cadence-workflow - 如何从 Cadence 工作流程或活动发出自定义指标?
- java - 如何克服 java.lang.OutOfMemoryError:图像文件在 XML 代码中未在 Activity 中使用的位置。仅在某些设备中出现错误
- rust - 如何为关联常量在 Self 上设置显式生命周期?
- android - 如何使用 Qt 读取 Android 中现有的 SQLite 数据库?
- c++ - 控制台在立即获得输入后立即退出
- swift - Swift 断言失败
- amazon-web-services - 在ec2中部署rest api并通过https服务
- node.js - Express JS 上的 UnhandledPromiseRejectionWarning