如何在SQL中使用max函数

时间:2016-12-05 20:24:17

标签: mysql sql max squeryl

我正在尝试编写查询以查找商店中的顶级销售人员并尝试显示员工姓名,他/她受雇的商店以及销售价值。我现在只想输出销售额最高的员工,我的查询会输出所有员工的数据。

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

以下是我的查询结果:

Results

3 个答案:

答案 0 :(得分: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

答案 1 :(得分: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

答案 2 :(得分:0)

如果您想要每个商店的顶级销售人员,那么您需要过滤。最好在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。这是一个等待发生的错误,因为它隐藏了用于连接的密钥,并且一些意外的列可能最终被使用。