2013-03-22 2 views
1

안녕하세요 저는 다음과 같은 데이터베이스 scheema 있습니다.가장 작은 급여를 가진 회사를 찾으십시오

employee (employee-name, street, city) 
works (employee-name, company-name, salary) 
company (company-name, city) 
manages (employee-name, manager-name) 

가장 작은 급여를 가진 회사를 찾아야합니다.

다음 쿼리를 작성했지만 트레이너가 잘못 설명합니다.

SELECT company-name 
FROM works 
GROUP BY company-name 
HAVING sum(salary) < (SELECT sum(salary) 
FROM works 
GROUP BY company-name) 
+0

제가 DB에 그것을 실행할 suppossed하지 누군지는 날엔 같은 쿼리를 작성하지 않고 개발 trainner 날의 잘못인지 ... –

답변

1

귀하의 하위 쿼리

SELECT company-name, sum(salary) 
FROM works 
GROUP BY company-name 

당신에게 각 회사에 대한 누적 급여 (급여)를 제공 할 것입니다.
이러한 데이터를 오름차순으로 주문하는 경우 첫 번째 레코드는 가장 적은 급여를 가진 회사가됩니다.

SELECT company-name, sum(salary) 
FROM works 
GROUP BY company-name 
ORDER BY sum(salary) 

당신보다 우리가이 경우에 < All을 사용할 수 있습니다

SELECT company-name, sum(salary) 
FROM works 
GROUP BY company-name 
ORDER BY sum(salary) 
LIMIT 1 
+0

감사합니다. –

1

추가 힌트를 보내 드리겠습니다. <은 무엇이 잘못된 것입니까 (하위 쿼리가 반환하는 것에 대해 신중히 생각하십시오).

+0

하위 쿼리가 회사의 급여의 합계를 반환 알려줍니다. 나는 SQL에 익숙하지 않기 때문에 아이디어가별로 없다 ... –

0

를 사용하여, 단지 하나의 기록에 그 레코드를 제한하기 위해 MySQL을의 LIMIT 절을 사용할 수 있습니까?

:

SELECT company-name 
FROM works 
GROUP BY company-name 
HAVING sum(salary) < ALL(SELECT sum(salary) 
FROM works 
GROUP BY company-name) 
관련 문제