简体   繁体   English

SQL基于另一个最大值的列的最大值

[英]Max value of a column based on another max value.SQL

I want the max value of the load number and the max value of the load sequence number based on the max load number. 我想要基于最大加载数的加载数的最大值和加载序列号的最大值。

So let's say I have this: 所以说我有这个:

id  | load_no |  load_seq_no |
----|---------|--------------|
1   |  200    |     1        |
----|---------|--------------|
2   |  200    |     2        |
----|---------|--------------|
3   |  200    |     3        |
----|---------|--------------|
4   |  300    |     1        |
----|---------|--------------|
5   |  300    |     2        |
----|---------|--------------|
6   |  300    |     2        |
----|---------|--------------|

and I want to select this 我要选择这个

id  | load_no |  load_seq_no |
----|---------|--------------|
5   |  300    |     2        |
----|---------|--------------|
6   |  300    |     2        |
----|---------|--------------|

I want to get those results after full join a simplified version of my code is 我想在完全加入我的代码的简化版本后得到这些结果

{SELECT coalesce(table1.id, table2.id) AS id ,max(table1.load_no) OVER (PARTITION BY table1.id) ,table1.load_seq_no ,table2.load_seq_no FROM table1 FULL JOIN table2 ON (table1.id = table2.id) WHERE table1.load_no = (SELECT max(table1.load_no) FROM table1) OR table2.load_no = (SELECT max(table2.load_no) FROM table2) AND table1.load_seq_no = (SELECT max(table1.load_seq_no) FROM table1) OR table2.load_seq_no = (SELECT max(table2.load_seq_no))}. {SELECT coalesce(table1.id,table2.id)AS id,max(table1.load_no)OVER(PARTITION BY table1.id),table1.load_seq_no,table2.load_seq_no FROM table1 FULL JOIN table2 ON(table1.id = table2。 id)WHERE table1.load_no =(从table1选择SELECT max(table1.load_no))或table2.load_no =(从table2选择SELECT max(table2.load_no))AND table1.load_seq_no =(从table1选择SELECT max(table1.load_seq_no))或table2.load_seq_no =(SELECT max(table2.load_seq_no))}。

AND I ONLY get the max load_no NOT the max load_seq_no. 而且我仅获得最大load_no而不是最大lo​​ad_seq_no。

you can try like below 你可以尝试如下

  select * from t
  where load_no = (select max(load_no) from t)
  and load_seq_no = (select max(load_seq_no) from t
                            where load_no =(select max(load_no) from t)
                      )

Could this fit your needs? 可以满足您的需求吗?

with x as(
select  max(load_seq_no) as mlsn, max(load_no) as mln  from tableName 
where load_no = (select max(load_no) from tableName )
) select * from tableName 
 join x on load_seq_no = mlsn and load_no = mln

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM