Выберите результаты, где цена не является максимальной ценой - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть эта таблица

ProductId       ProductName Category        Price
      1            Tiger      Beer          $12.00
      2             ABC       Beer          $13.99
      3            Anchor     Beer          $9.00
      4            Apolo      Wine          $10.88
      5           Randonal    Wine          $18.90
      6            Wisky      Wine          $30.19
      7             Coca     Beverage       $2.00
      8            Sting     Beverage       $5.00
      9             Spy      Beverage       $4.00
     10           Angkor      Beer          $12.88

Как выбрать все результаты, кроме максимальной цены Максимальная цена $ 30,19

Спасибо!

Ответы [ 5 ]

0 голосов
/ 08 ноября 2018
select * from tablename where price not in 
  (select max(price) from tablename)
0 голосов
/ 08 ноября 2018

В качестве аналитической функции Windows можно использовать max:

select q.ProductId, q.ProductName, q.Category, q.Price
  from
  (
   select t.*,
          max(t.price) over (order by t.price desc) max_price
     from t
   ) q   
 where q.price < max_price;

Rextester Demo

0 голосов
/ 08 ноября 2018

Вы можете запросить самую высокую цену следующим образом:

select max(Price) from Products; -- Assuming 'Products' is your table name

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

select
  *
from
  Products
where
  Price < (select max(Price) from Products)
0 голосов
/ 08 ноября 2018

Вы можете сделать это с оператором и с помощью функции max.

Select * from Prices where Price < (select max(Price) from Prices)
0 голосов
/ 08 ноября 2018

Вы можете попробовать ниже

select * from tablename where price not in 
  (select max(price) from tablename)
...