Как найти минимальное значение в поле и связанное значение в другом поле в одном запросе в MS Access? - PullRequest
0 голосов
/ 28 декабря 2018

У меня есть база данных европейских стран.В поле справа я имею плотность населения всех перечисленных стран.Я должен найти наименьшую плотность населения и отобразить ее и страну, которой он принадлежит, в одном запросе.

Моя лучшая попытка:

SELECT Min(europa.Nepsuruseg) AS MinOfNepsuruseg, europa.Orszag
FROM europa
GROUP BY europa.Orszag;

Это, однако, показывает все страны и их плотность населения.Как мне сделать это правильно?

Example Data

Ответы [ 2 ]

0 голосов
/ 28 декабря 2018

Вам нужно использовать функцию TOP, чтобы получить только самую маленькую, после сортировки по Nepsuruseg.

SELECT Top 1 europa.Nepsuruseg, europa.Orszag
FROM europa
Order By europa.Nepsuruseg ASC;
0 голосов
/ 28 декабря 2018

Сначала вам нужно будет выбрать минимальную плотность населения по всем записям, используя подзапрос.

Затем, чтобы получить всю связанную информацию, содержащуюся в записи или записях, чье поле плотности населения равно минимальному,вы можете присоединить подзапрос к основной таблице или включить подзапрос в предложение WHERE.

Вот пример использования INNER JOIN в подзапросе:

select t.* 
from europa t inner join
(
    select min(e.nepsuruseg) as mpd from europa e
) q
on t.nepsuruseg = q.mpd

Или, используя предложение WHERE:

select t.* 
from europa t
where t.nepsuruseg = (select min(e.nepsuruseg) from europa e)
...