SELECT
MAX (discharge_amount),CHECK_YEAR
FROM
ims_source_item_summary
GROUP BY
CHECK_year
ORDER BY CHECK_YEAR
查询某个时间内最大的值 ,结果如下:
但是我需要不仅仅查时间和最大值,还想要这条记录的id信息或者其他信息。
大概意思是这样 :
SELECT
ID,MAX (discharge_amount),CHECK_YEAR
FROM
ims_source_item_summary
GROUP BY
CHECK_year
ORDER BY CHECK_YEAR
但是大家知道聚合函数max 是不允许这样使用的。
得需要这样写sql :
SELECT
ID,
discharge_amount,
check_year
FROM
ims_source_item_summary A
WHERE
discharge_amount IN (
SELECT
MAX (discharge_amount)
FROM
ims_source_item_summary b
WHERE
A .check_year = b.check_year //这个很关键
GROUP BY
check_year
)
ORDER BY check_year
结果如下 :
如果没有上面的 A .check_year = b.check_year 时间约束 则会出现如下情况: