2015-05-21 3 views
0

Я пытаюсь только показать значение стоимости автомобилей, которые принадлежат к категории с минимальным кол категории составляетSQL отображения количества запросов мин строк только

Этот запрос я пытаюсь использовать:

select model, VIN,cost 
from stock 

Желаемая Выход:

Model -  VIN  - Cost 
STI  XXXXXXXXXXXX $55,000 

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

having count(distinct category)=(select min(count(category)) 
from stock group by category) 

Но я не не уверен, о том, как реализовать такой оператор

+0

Вложенные запросы. = select min (cnt) from (select count (... – jarlh

+0

дайте мне несколько тестовых данных, и я попытаюсь создать sqlfiddle и проведу некоторое тестирование –

+0

показать нам таблицу stackure –

ответ

1

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

select s.model, s.VIN, s.cost 
from stock s join 
    (select category, count(*) as cnt, min(count(*)) over() as mincnt 
     from stock s 
     group by category 
    ) c 
    on s.category = c.category and cnt = mincnt 
+0

Вы уверены, что можете использовать функцию окна внутри совокупность? – Andomar

+0

Привет Гордан, да, это сложная часть, которую я хочу получить, подсчет категорий нахожу те, у которых значения минимумов и модель отображения, VIN, стоимость, основанная на значениях минимальной категории – ITworldR

+0

Большое вам спасибо Gordon запрос работал – ITworldR

1
with cnt_stock as 
     (
     select count(*) over (partition by category) cat_cnt 
     ,  model 
     ,  category 
     from stock 
     ) 
select * 
from cnt_stock 
where cat_cnt = 
     (
     select min(cat_cnt) 
     from cnt_stock 
     ) 

Example at SQL Fiddle.

+0

' select top 1 count (*) 'в Oracle? Не функция Oracle. –

+0

@LalitKumarB: Ах, это Oracle. Можно ли даже ограничить подзапросы в Oracle? Я обновил ответ, чтобы обойти это. – Andomar

+0

Благодарим вас за ответ :) – ITworldR

Смежные вопросы