나는 상점에 최고 영업 사원을 찾고 직원 이름, 그가 근무하는 가게 및 판매액을 표시하기 위해 쿼리를 작성하려고합니다. 나는 현재 판매량이 가장 많은 직원만을 출력하고 싶습니다. 내 쿼리는 모든 직원을 수치로 출력합니다. 이 같은 여기SQL에서 max 함수를 사용하는 방법
0
A
답변
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
를 사용하지 않는합니다. 그것은 참여하기 위해 사용되는 키를 숨기고 일부 예기치 않은 열이 사용되게 될 수 있기 때문에 발생하기를 기다리는 버그입니다.
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 서버
에 대해 위의 시도SELECT empnin, shopname, SUM(Rentalrate) AS Sales
FROM frs_FilmRental
NATURAL JOIN frs_Shop
GROUP BY empnin
이
내가 내 쿼리를 얻을 다음과 같은 결과입니다