sql - 从 INNER JOIN 向 MIN 和 MAX 语句添加其他列
问题描述
我目前有一个查询,该查询根据 tbl1 和 tbl2 中的日期列返回一个 MIN 和 MAX 列,该列基于两个表中的 person_id 连接。我现在想开发这个查询来从两个表中引入额外的列。
这两张桌子每人有多个活动。简而言之,我想做的是查找与下面已经查询的 person_id 和 MIN 日期的组合相关的事件。所以在 tbl1 和 tbl2 中都有两个额外的事件 ID,但我只想要一个链接到下面的 MIN 日期和 person_id 组合的事件 ID。
当前查询基于 tbl1 和 tbl2 中的日期列返回 MIN 和 MAX 列
SELECT tbl1.person_id,
LEAST(MIN(tbl1.Date), MIN(tbl2.Date)) AS start_date,
GREATEST(MAX(tbl1.Date), MAX(tbl2.Date)) AS end_date,
FROM `database_name.table_name1` tbl1 JOIN
`database_name.table_name2` tbl2
ON tbl1.person_id = tbl2.person_id JOIN
`database_name.table_name3` tbl3
ON tbl1.person_id = tbl3.person_id
GROUP BY tbl1.person_id
期望的结果:
Col_1: Person_id (Integer, e.g. 1234)
Col_2: start_date (YYYY-MM-DD)
Col_3: end_date (YYY-MM-DD)
Col_5: additional column that is the most recent from either table based on two different columns that are the match to the combination of the person_id in column 1 and the start_date in column 2. This could be an INTEGER from either tbl1.eventID1 or tbl2.eventID2
Col_5: same as above but a STRING
我希望这是有道理的。
解决方案
推荐阅读
- java - JSONObject 方法 getBoolean("error") 如何工作?
- arrays - 错误的文件名或编号 (VB.NET)
- ansible - 是否有可能以某种方式创建 ansible 处理程序的模板?
- python - Python处理数据和延迟
- kubernetes - 暂存和生产路线相互冲突
- vba - 尽管填充了 word vba 组合框值但未显示
- php - Laravel - 关系
- android - 如何在右侧绘制 Y 轴并从右侧开始时间并在 MP Chart Android 库的折线图中绘制布局
- remote-access - 在本地运行时运行时如何访问默认的协作包?
- mysql - 当 session_id 更改时,有没有办法从 1 重新启动自动增量 id?(不使用存储过程 ecc ..)