mysql - 在与另一个连接的表上使用 Max
问题描述
目标是创建数据记录的概览。这些记录来自多个表。其中一个表包含每条记录的几行,每行都有一个 ID 号。只应显示具有最高 ID 号的那个。
我尝试过使用 Inner Joins 做一些事情,但我做错了。
问题的简化视图:
Tabel1
Tabel1_Id ValueA ValueB
1 ABC DEF
2 GHI JKL
3 MNO PQR
4 STU VWX
Tabel2
Tabel2_id Tabel1_Id Number ValueC
1 1 1 Green
2 1 2 Yellow
3 2 1 Blue
4 1 3 Red
5 3 1 Purple
6 3 2 Pink
7 2 2 Violet
8 4 1 Magenta
9 2 3 Cyan
10 4 2 Teal
Desired Result
ValueA ValueB ValueC
ABC DEF Red
GHI JKL Cyan
MNO PQR Pink
STU VWX Teal
解决方案
如果您的 DBMS 支持row_number()
,那么您可以在下面使用
with cte as
(select *,row_number()over(partition by Tabel1_Id order by Number desc) rn
from table2
) select valueA,valueV,valuec
from cte join table1 t1 on cte.Tabel1_Id=t1.Tabel1_Id
where cte.rn=1
推荐阅读
- python - 与python中子进程打开的`/dev/tty`交互
- c - 如何在 C 中为自定义 Wireshark 解剖器创建新名称?
- json - 通过 Power Automate 创建专用通道 JSON 和/或图形 API 有什么问题?
- python - MySQL 执行语句返回 NoneType
- javascript - 无法使用 vuejs 和 electronjs 创建简单的文件资源管理器
- python - IndexError:索引 2 超出轴 2 的范围,大小为 2
- vue.js - 从其他组件调用方法
- angular - 如何根据显示值过滤 agGrid 中的行?
- perforce - 我们如何在 perforce 中签出文件的特定版本?
- java - Java中接口和类的继承