2016-12-05 118 views
0

我正在嘗試編寫查詢以查找店鋪中的最高銷售人員並嘗試顯示員工姓名,他/她所在的商店以及銷售額。我只想輸出銷售數量最多的員工,我的查詢輸出所有員工的數字。如何在SQL中使用max函數

SELECT empnin, shopname, SUM(Rentalrate) AS Sales 
FROM frs_FilmRental 
NATURAL JOIN frs_Shop 
GROUP BY empnin 

這是下面的結果我用我的查詢得到:

Results

回答

0

I如果你想要每個商店的最高銷售人員,那麼你需要過濾。這最好在WHERE條款中完成。

在MySQL中,這種類型的查詢其實是最容易實現的使用變量:

select fs.* 
from (select fs.*, 
      (@rn := if(@s = shopname, @rn + 1, 
         if(@s := shopname, 1, 1) 
         ) 
      ) as rn 
     from (select fr.empnin, s.shopname, SUM(fr.Rentalrate) AS Sales 
      from frs_FilmRental fr join 
       frs_Shop s 
       using (??) -- add the appropriate column here 
      group by empnin 
      ) fs cross join 
      (select @rn := 0, @s := '') params 
     order by shopname, sales desc 
    ) fs 
where rn = 1; 

另外,不要使用natural join。這是一個等待發生的錯誤,因爲它隱藏了用於連接的鍵,並且一些意外的列可能最終被使用。

0

在這裏,像這樣:

SELECT top 10 empnin, min(shopname) as Shopname, SUM(Rentalrate) AS Sales 
FROM frs_FilmRental 
NATURAL JOIN frs_Shop 
GROUP BY empnin 
order by sum(Rentalrate) desc 
0
SELECT TOP 1 empnin, shopname, SUM(Rentalrate) AS Sales 
FROM frs_FilmRental 
NATURAL JOIN frs_Shop 
GROUP BY empnin ORDER BY Sales 

試試上面的SQL Server