2013-05-16 8 views
0

편집하위 쿼리

Table items 
+--------+----------+ 
| job_id | quantity | 
+--------+----------+ 
| 004 |  150 | 
| 004 |  4 | 
| 004 |  100 | 
| 002 |  50 | 
| 002 |  2 | 
| 002 |  17 | 
| 002 |  17 | 
| 006 |  2 | 
+--------+----------+ 

가 나는 그것이 매우 간단 하나 여야합니다 알고 같은 작업에 대해 다른 항목에 대한보다 큰 수량이있는 모든 항목을 나열 시도 선택하지만 나에게있어 붙어있어. 쿼리에서 ANY를 사용하려고했지만 사용법이 확실하지 않았습니다. 여기에 내가 생각하고있는 작업은 다음과 같습니다

select job_id, quantity 
from items 
where quantity > 
    (select min(quantity) from items) group by job_id; 

내가 그 하나의 방법 벗어났다.

답변

1

대신이 시도 하나가 속임수를 썼는지

select job_id, max(quantity) from po_items group by job_id; 

하는 도움을 주셔서 감사합니다 :

select job_id, quantity 
from items 
where quantity > (select MAX(quantity) from items where ...); 
0

당신이 사용할 수있는 기능 MAX()

당신은 사용할 수 있습니다 select MAX(quantity) from items where

select job_id, quantity 
from items 
where quantity > (select MAX(quantity) from items where ...); 
0

PSR이 올바른 경로에 있습니다.

각 작업의 최대 값은 집계 MAX() 함수를 GROUP BY에서 가장 효율적으로 사용할 수 있습니다.

시도 :

select job_id, MAX(quantity) from items GROUP BY job_id

(모바일에서 전송)

+0

덕분에이 속임수를 썼는지 – Tom

0

.Check SUBQUERY없이 SQLFIDDLE

SELECT 
    job_id, 
    MAX(quantity) 
FROM items 
GROUP BY job_id