sql - SQL查询仅显示最近日期的非重复行和重复行
问题描述
所以我有两个表(比如说 x 和 y)。两个表中的大部分数据都是重复的,但有些行是不同的。我将这两个表中的全部数据插入到一个新表中(比如说 table_mixed)。有一列表示表的日期,例如 x 为 20190307,y 为 20190308 因此,对于任何重复的行,都会有一个不同的日期列。
num Code col1 col2 col3..... import_date file_date
-------- --------- ----------------- ---------- ----------
01 AA ...... 20190308 20190307
01 AA ...... 20190308 20190308
02 AA ...... 20190308 20190307
03 BB ...... 20190308 20190308
我想要做的是,我想查询一个数据,以便从两个表中显示一个非重复行,对于任何重复的行,只显示一个最近日期的行。
我做了一些发现,我试过这个:
select *,max(file_date) over (partition by stx_import_date) max_date
from table_mixed;
其中 file_date 是一个日期,它告诉每个表的不同日期,并且两个表中的每一行都具有相同的 import_date。
num Code col1 col2 col3...... import_date file_date max_date
-------- --------- ------------ ---------- ----------
01 AA ...... 20190308 20190307 20190308
01 AA ...... 20190308 20190308 20190308
02 AA ...... 20190308 20190307 20190307
03 BB ...... 20190308 20190308 20190308
此查询的结果显示每一行(包括所有重复的行)并添加另一列 (max_date),该列仅显示每行的最近 file_date。但我希望结果只显示我上面提到的内容,而不是额外的列(max_date)。
这是我正在寻找的结果:
num Code col1 col2 col3... import_date file_date
-------- --------- ------------ ---------- --------
01 AA ...... 20190308 20190308
02 AA ...... 20190308 20190307
03 BB ...... 20190308 20190308
谢谢
PS不仅需要复制的列编号,代码和导入日期,还有我的其他列.....所以,我的意思是重复行>>除file_date之外的每一列(我有10多列)
PS2 我编辑了这个例子,所以你们想误会我的意思。还有其他列(如 col1、col2、col3 等)也使用了。在这种情况下我应该如何使用分区
解决方案
您似乎关心该num
列并且只想要最新的数据。您可以使用混合表执行此操作:
select tm.*
from (select tm.*,
row_number() over (partition by num, code, . . . order by file_date desc) as seqnum
from table_mixed
) tm
where seqnum = 1;
注意:如果文件日期相同,则将选择任意行。
当您创建混合表时,这样做可能更有效。你可以这样做:
select y.*
from y
union all
select x.*
from x left join
y
on x.num = y.num and
x.code = y.code and
. . .
where y.num is null;
这将返回y
(最近的)中的所有行以及来自x
(并假设所有列值都不是NULL
)的任何不匹配的行。
推荐阅读
- postgresql - PostgreSQL 在不设置 search_path 的情况下以不同的模式显示所有表
- scala - Pureconfig - 是否可以在 conf 文件中包含另一个 conf 文件?
- php - 重命名功能不适用于 php 中的文件夹
- c - 谁能解释为什么程序返回此错误?进程返回 -1073741819 (0xC0000005)
- angular - 离子电容器共享插件不与whatsapp共享图像
- paraview - 二维有限元数据可视化
- json - 如何将具有重复键的对象序列合并为一个?
- maven-javadoc-plugin - 如何使用最新的 Javadoc Maven 插件 (3.x+) 生成汇总报告?
- ios - 文件选择器中的错误找不到有效的活动来处理请求。确保您已安装文件资源管理器
- javascript - 我使用“数据目标”来保持活动链接样式。即使从活动链接移动页面,如何保持样式