Максимальное значение столбца на основе другого максимального значения .SQL - PullRequest
0 голосов
/ 23 ноября 2018

Я хочу, чтобы максимальное значение номера нагрузки и максимальное значение порядкового номера нагрузки основывались на максимальном номере нагрузки.

Итак, скажем, у меня есть это:

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

и я хочу выбрать это

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

Я хочу получить эти результаты после полного соединения, упрощенная версия моего кода

{SELECT coalesce (table1.id, table2.id) ASid, 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) ГДЕ table1.load_no = (ВЫБРАТЬ макс. (таблица1.load_no) FROM table1) ИЛИ table2.load_no = (SELECT max (table2.load_no) FROM table2) И table1.load_seq_no = (SELECT max (table1.load_seq_no) FROM table1) ИЛИ table2.load_seq_no = (ВЫБРАТЬ макс. (table2.load_seq_no))}.

И я ТОЛЬКО получаю максимальное значение load_no, а не максимальное значение load_seq_no.

Ответы [ 2 ]

0 голосов
/ 23 ноября 2018

Может ли это соответствовать вашим потребностям?

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
0 голосов
/ 23 ноября 2018

вы можете попробовать как ниже

  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)
                      )
...