Одна вещь, которую вам нужно учитывать, это то, что произойдет, если два или более вертолета забронировали наименьшее количество чартеров?
Если вы просто хотите «выбрать один», вы можете просто отсортировать по количеству (по убыванию) и сообщите первый результат:
SELECT * FROM (
SELECT Helicopter_Name, c FROM (
SELECT Helicopter_Name, COUNT (Distinct Charter_NUM) AS c
FROM Charter_Table GROUP BY Helicopter
) ORDER BY c DESC
) WHERE ROWNUM = 1;
В качестве альтернативы, если вам необходимо сообщить все helis, которые имеют наименьшее количество чартеров с учетом связей, вы можете использовать аналитическую функцию RANK:
SELECT Helicopter_Name, c FROM (
SELECT Helicopter_Name, c, RANK() OVER (ORDER BY c) therank FROM (
SELECT Helicopter_Name, COUNT (Distinct Charter_NUM) AS c
FROM Charter_Table GROUP BY Helicopter
)
) WHERE therank = 1;