sql - 选择最新日期以上的所有值
问题描述
请帮我完成一项任务。我想获取日期以上的所有数据。它可能是这样的: 1. 在列 last_date 中为每个 Product_Name 查找最大日期。2. 获取每个 Product_Name 组的 max(last_date)>start_date 的所有行
我的桌子:
我想得到什么:
解决方案
如果我理解正确,您可以使用窗口函数:
select t.*
from (select t.*,
max(last_date) over (partition by product_name) as max_last_date
from t
) t
where start_date > max_last_date;
请注意,我更改了比较的顺序以匹配您指定的结果,而不是问题描述的结果。
推荐阅读
- php - 尝试使用分类功能收集所有数据并使用 Ajax JSON 发送
- arrays - 跨维度计算平均值
- ruby-on-rails - Shopify 路线错误:取消定义 shopify_api_[resource]_path
- java - 在测试中调用 spring-security-crypto 的加密器时出现 IllegalArgumentException
- swift - SwiftUI 中 NavigationView 导航栏的自定义后退按钮
- google-api - 对 google api 进行身份验证或应用程序出现问题
- python - 从 AWS S3 读取多个文件
- reactjs - 在 React Material-UI makeStyles 中引用窗口大小
- r - 根据个人代码比较数据框中的列表,如果较长则缩短一个列表
- python - 在 C++ 中嵌入 TensorFlow Python 程序