sql - sql - 在订单上选择多个最大值
问题描述
我有date
, work
,Tasks
在一张桌子上。每个date
我们有多个条目,每个条目一个Task
。在给定的一天,如果有 3 个任务,我们将有 3 个条目
我想为每项工作完成最新任务。下面的查询给了我所有
SELECT task
FROM TEST_RESULTS
WHERE RESULT ='PASSED' and
task NOT IN (' ', 'N/A' )
ORDER BY work, date DESC ;
我只能得到排序的列表。有人可以帮我获取每项工作最新日期的行。
需要的样本输出:
+ -----+--------+------------+ | 工作 | 任务 | 日期 | + -----+--------+------------+ | 1 | 干净 | 2018 年 1 月 1 日 | | 1 | 刷| 2018 年 1 月 1 日 | | 2 | 洗| 2018 年 1 月 2 日 | | 2 | 干净 | 2018 年 1 月 2 日 | | 3 | xyz | 2018 年 1 月 1 日 | | 3 | 抄送 | 2018 年 1 月 1 日 | + -----+--------+------------+
解决方案
使用row_numner()
解析函数
select work,date
from
(
select work,date,row_number()over(partition by work order by date desc ) rn
from TEST_RESULTS
WHERE RESULT ='PASSED' and task NOT IN (' ','N/A' )
) a where a.rn=1
如果您只需要所有任务的最新日期,请使用简单的子查询
with cte as
(
select * ,max(date) over(partition by work) as mxdate
from TEST_RESULTS
where RESULT ='PASSED' and task NOT IN (' ','N/A' )
) select * from cte where
date=mxdate
推荐阅读
- terraform - Terraform Azure 数据工厂标识
- ruby-on-rails - 从 rails(后端)获取方法的响应到 Vue 模块
- fabricjs - Fabricjs 的对象组未显示且行为不正确
- azure - Azure Functions Core Tools 无法安装绑定所需的扩展,在 Ubuntu 服务器中出现 SSL 错误
- autofac - Autofac 是否支持在 Blazor WebAssembly 延迟加载程序集中注册服务
- javascript - Selenium 问题当在网站上以 DIV 形式提供表格数据时,在 DIV 内我每行都有一个 div
- react-native - SVG 被切入 React Native
- c - 与 Linux 相比,Windows/MSYS2 上的双重初始化错误
- arrays - 将熊猫数据框转换为 json
- sql - BigQuery/Tableau 日期错误:无效日期:“2021 年 2 月 5 日”