最简单的语法
SELECT MAX(expression )
FROM tables
WHERE predicates;
实例
代码如下 | 复制代码 |
SELECT MAX(salary) as "Highest salary" FROM employees; |
让它与 GROUP BY同时使用
代码如下 | 复制代码 |
SELECT department, MAX(salary) as "Highest salary" FROM employees GROUP BY department; |
问:我试图拉出一个表的一些信息。为了简化,假设表(report_history)有4列:
代码如下 | 复制代码 |
USER_NAME,report_job_id,REPORT_NAME,report_run_date。 |
每一份报告,是在Oracle运行时,记录写入此表,注意到上述信息。我试图做的是拉从这个表中,当最后一次每一个不同的运行报告和谁跑,最后。
我的查询:
代码如下 | 复制代码 |
SELECT report_name, max(report_run_date) FROM report_history GROUP BY report_name |
但这样的结果是有问题的,下面看看正确的做法
代码如下 | 复制代码 |
SELECT rh.user_name, rh.report_name, rh.report_run_date FROM report_history rh, (SELECT max(report_run_date) as maxdate, report_name FROM report_history GROUP BY report_name) maxresults WHERE rh.report_name = maxresults.report_name AND rh.report_run_date= maxresults.maxdate; Let's take a few moments to explain what we've done. |
方法二
代码如下 | 复制代码 |
(SELECT max(report_run_date) as maxdate, report_name FROM report_history GROUP BY report_name) maxresults |
时间: 2024-09-20 04:23:56