Как я могу принять только максимальные значения? - PullRequest
0 голосов
/ 18 июня 2019

У меня есть запрос sql, как это:

SELECT * FROM table1
INNER JOIN table2 ON table1.id = table2.id
INNER JOIN table3 ON table1.id = table3.id
INNER JOIN table4 ON table1.id = table4.id

У меня проблема, я хотел бы получить только максимальные значения из таблицы3, например, я получаю:

ID    Value    
1     1
1     2
1     3
2     1
3     1
3     2

Iхотел бы получить только ответы со значениями max:

ID    Value
1     3
2     1
3     2

Есть еще много столбцов, которые я скрыл.У вас есть идея, как этого добиться?

Спасибо

Ответы [ 2 ]

2 голосов
/ 18 июня 2019

Использование агрегации:

SELECT t1.id, MAX(t3.value)
FROM table1 t1 JOIN
     table2 t2
     ON t1 = t2.id JOIN
     table3 t3
     ON t1.id = t3.id
     table4 t4
     ON t1.id = t4.id
GROUP BY t1.id;
0 голосов
/ 18 июня 2019

использовать подзапросы для table3

SELECT * FROM table1
INNER JOIN table2 ON table1.id = table2.id
INNER JOIN ( select id,max(value) as val from table3 group by id) t3 ON table1.id = t3.id
INNER JOIN table4 ON table1.id = table4.id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...