0 / 0 / 0
Регистрация: 21.08.2015
Сообщений: 22
1

Как выбрать несколько минимальных значений в определенных категориях?

25.09.2015, 18:46. Показов 5222. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Есть проблема с созданием запроса по этому заданию:

Отобразить самую дешевую книгу в каждой из следующих тематик: Программирование, Базы данных клиент-сервер, Мультимедиа.

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

Поиском пользовался, но не нашел. Возможно плохо искал.

Вот код, который сделал:

T-SQL
1
2
3
4
5
6
7
8
9
10
GO
CREATE VIEW min_price (Themes,min_of_price) AS SELECT Themes,MIN(Price) FROM books
 WHERE Themes = 'Программирование' or Themes = 'Базы данных клиент-сервер' or Themes = 'Мультимедиа' 
  GROUP BY Themes;
GO
 
SELECT *
FROM books
WHERE (Themes = 'Программирование' or Themes = 'Базы данных клиент-сервер' or Themes = 'Мультимедиа') and Price=(
SELECT min_of_price from min_price)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.09.2015, 18:46
Ответы с готовыми решениями:

Выбрать несколько минимальных значений в массиве
Добрый день, уважаемые ГУРУ. Программирую VBA впервые, хоть и есть небольшой опыт...

Одинаковые id несколько значений, как выбрать нужное
Добрый день! Нужна Ваша помощь! Есть таблица: product_id__filter_id 1____________2...

Одинаковые id несколько значений, как выбрать нужное
Добрый день! Нужна Ваша помощь! Есть таблица: product_id|filter_id 1|2 1|3 1|7 2|2 2|4 3|3...

Как выбрать массив вложенный в котором содержатся несколько значений?
имеем массив $shiny = , //1 , //2 , //3 //4 ]; если искать так : то при...

2
1313 / 945 / 144
Регистрация: 17.01.2013
Сообщений: 2,348
26.09.2015, 15:40 2
Лучший ответ Сообщение было отмечено Hlibold как решение

Решение

T-SQL
1
2
3
4
5
6
7
select *
from(
  select *, rank()over(partition by Themes order by Price)rnk
  from Books
  where Themes in ('Программирование','Базы данных клиент-сервер','Мультимедиа')
  )b
where rnk=1;
SQL
1
2
3
4
5
6
7
8
SELECT b.*
FROM (
  SELECT Themes, MIN(price)price
  FROM Books
  WHERE Themes IN ('Программирование','Базы данных клиент-сервер','Мультимедиа')
  GROUP BY Themes
  ) p
JOIN Books b ON b.Themes=p.Themes AND b.price=p.price
SQL
1
2
3
4
5
6
7
8
9
SELECT *
FROM Books b
WHERE Themes IN ('Программирование','Базы данных клиент-сервер','Мультимедиа')
  AND NOT EXISTS(
    SELECT *
    FROM Books s
    WHERE s.Themes=b.Themes
      AND s.price<b.price
  )
1
0 / 0 / 0
Регистрация: 21.08.2015
Сообщений: 22
26.09.2015, 21:21  [ТС] 3
Спасибо большое за помощь!
0
26.09.2015, 21:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.09.2015, 21:21
Помогаю со студенческими работами здесь

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

Как в форме Access сделать список, из которого можно выбрать не одно, а несколько значений?
Всем здравствуйте! Я совсем еще новичок в Аccess, поэтому очень прошу помочь: Как сделать форму...

Выбрать несколько значений в каждой группе
Здравствуйте! Есть таблица: A | B 1 | &quot;a&quot; 1 | &quot;a&quot; 1 | &quot;abc&quot; 1 | &quot;ed&quot; 2 | &quot;q&quot; 3 | &quot;r&quot; 3...

Выбрать несколько максимальных значений из диапазона
Нужно сформировать таблицу с данными о 5-ти самых высокооплачиваемых сотрудниках фирмы, диапазон их...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru