SQL Список самая низкая цена за автомобиль - PullRequest
0 голосов
/ 23 февраля 2020

Я пытаюсь заставить работать запрос, который будет возвращать наименьшую цену за указанную модель + TRIM.

Текущая таблица содержит следующие столбцы:

   [YEAR] 
  ,[MAKE] 
  ,[MODEL] 
  ,[TRIM] 
  ,[STOCK] 
  ,[PRICE] 
  ,[MSRP] 
  ,[CUSTOMERNAME] 
  ,[CUSTOMERID] 
  ,[DISTANCE] 
  ,[DateInserted] 
  ,[ID] 

Что я пытаюсь сделать получить:

MODEL      | TRIM   | PRICE | LOWESTPRICE   | MSRP  | CUSTOMERNAME          | RANK  
-----------+--------+-------+---------------+-------+-----------------------+------
124 Spider | Abarth | 22499 | ????????????? | 32730 | Bobs Car Dealership   |  3 
124 Spider | Abarth | 21000 | ????????????? | 32730 | Franks Car Dealership |  2 
124 Spider | Abarth | 55499 | ????????????? | 32730 | Bobs Car Dealership   | 53 

Что я получаю:

MODEL      | TRIM   | PRICE | LOWESTPRICE   | MSRP  | CUSTOMERNAME          | RANK  
-----------+--------+-------+---------------+-------+-----------------------+------
124 Spider | Abarth | 22499                 | 22499 | Bobs Car Dealership   |  3 
124 Spider | Abarth | 22499                 | 21000 | Franks Car Dealership |  2 
124 Spider | Abarth | 22499                 | 55499 | Bobs Car Dealership   | 53 

Мой запрос:

SELECT
    Ranks.MODEL, Ranks.TRIM,
    [PRICE], [MSRP],
    [CUSTOMERNAME],
    ROW_NUMBER() OVER (PARTITION BY Ranks.MODEL, Ranks.TRIM ORDER BY PRICE ASC) AS Rank
FROM 
    [PageRank].[dbo].[BHAMock] Ranks 
JOIN
    (SELECT
         MIN(PRICE) AS LowestPrice,
         MODEL,
         TRIM
     FROM 
         [PageRank].[dbo].[BHAMock]
     GROUP BY 
         MODEL, TRIM) LowestPrice ON Ranks.MODEL = LowestPrice.MODEL 
                                  AND Ranks.TRIM = Ranks.TRIM
WHERE 
    PRICE IS NOT NULL

1 Ответ

1 голос
/ 23 февраля 2020
SELECT
   Ranks.MODEL
    ,Ranks.TRIM
    ,[MSRP]
    , LowestPrice.LowestPrc
    ,[CUSTOMERNAME]
    ,[MSRP]
    ,ROW_NUMBER() OVER (PARTITION BY Ranks.MODEL, Ranks.TRIM ORDER BY PRICE ASC) AS Rank
    FROM [PageRank].[dbo].[BHAMock] Ranks JOIN
    (
        SELECT
            MIN(PRICE)as LowestPrc,
            MODEL,
            TRIM
            FROM [PageRank].[dbo].[BHAMock]
            GROUP BY MODEL, TRIM
    ) LowestPrice
    on Ranks.MODEL = LowestPrice.MODEL AND Ranks.TRIM = Ranks.TRIM
    WHERE PRICE IS NOT NULL;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...