sql - 从另一个表中选择配置单元中具有最大日期的数据
问题描述
我有一张这样的桌子 t1
A B
1 2020-05-01
1 2020-05-04
1 2020-05-05
1 2020-05-06
2 2020-04-10
和另一张桌子 t2
A C
1 2020-04-30
5 2020-04-08
我需要这样:
A B c
1 2020-05-01 2020-04-30
1 2020-05-04 2020-04-30
1 2020-05-05 2020-04-30
1 2020-05-06 2020-04-30
2 2020-04-10 2020-04-08
如您所见,我从表 t2 中获得最后一个最大日期为 c,此处小于 B 2020-04-30 是小于 2020-05-01,04,05 和 06 的最大日期,对于 2020-04-10日期为 2020-04-08。
我正在尝试这样但得到错误的答案:
select t1.*,t2.C, max(C) over (partition by t2.A ) from t1 inner join t2 on t1.A=t2.A and t2.C<t1.B
解决方案
你可以试试这个方法。我使用 CTE(Common Table Expresion) 并使用 MAX 和 GROUP BY 查询 CTE
WITH t AS(
SELECT t1.a, t1.b, t2.c
FROM t1, t2
WHERE t1.b > t2.c)
SELECT a, b, MAX(c) AS c
FROM t
GROUP BY a,b;
预期产出
+----+-------------+-------------+--+
| a | b | c |
+----+-------------+-------------+--+
| 1 | 2020-05-01 | 2020-04-30 |
| 1 | 2020-05-04 | 2020-04-30 |
| 1 | 2020-05-05 | 2020-04-30 |
| 1 | 2020-05-06 | 2020-04-30 |
| 2 | 2020-04-10 | 2020-04-08 |
+----+-------------+-------------+--+
推荐阅读
- excel - 将一列中的数据重新排列为多行
- c++ - 编译时间常数确定
- php - 如何获取特定字符串后的数据
- sas - 此 SQL 查询的 DATA 步等效项是什么?
- android - 如何从 Firestore 集合中获取所有文档并将它们返回到数组列表中?
- connection - 由于访问问题,无法在 Azure 数据工厂中创建连接
- drop-down-menu - 材质组件菜单的 `setAbsolutePosition()` 无法正常工作?
- uml - Doxygen 提取数据类型并显示错误的关联性
- java - Java中类型转换的性能成本,如何选择?
- python - 无法将散景图嵌入到 Flask 应用程序中