2011-05-13 3 views
0

나는 입찰가 테이블을 가지고 있으며, 각 입찰가에는 금액과 AuctionID가 있습니다. 내가/SUM 각 AuctionID에서 모두 가장 높은 입찰을 선택합니다동일한 테이블에서 다른 ID의 값 중 가장 높은 값을 얻으시겠습니까?

..

예 :

의 결과 :

SELECT AuctionID,Amount, Highest FROM Bids Where Burned=0 ORDER BY Amount DESC

AuctionID Amount Highest 
    1  44.4400  0 
    3  43.7800  0 
    2  42.3300  0 
    1  22.2200  0 
    4  21.2700  0 
    1  21.2600  0 
    4  21.2500  0 
    2  21.2400  0 
    1  12.6600  0 
    4  12.5200  0 

그것은 44.44를 반환해야합니다, 43.78, 42.33, 21.27.

'가장 높음'은 유용하다고 생각되는 플래그입니다. 아직 사용하지 못했습니다. 깃발을 사용하지 않고 할 방법이 있는지 알고 싶었습니다.

+1

왜 AuctionId ='# 2'에 대해 '42.33'을 반환하지 않습니까? –

+0

@ahmet Thx fixed : – Danpe

답변

1

모두 가장 높은 입찰을 얻으려면을 :

Select auctionid, max(amount) from auctions group by auctionid 

가장 높은 입찰의 총 합으로 활용하려면 다음

select sum(v1.max_amount) from 
(Select auctionid, max(amount) max_amount from auctions group by auctionid 
) as v1 
+0

SUM 메서드에서 다음과 같이 표시됩니다. ')'근처에 구문이 잘못되었습니다. – Danpe

+0

별칭을 추가해야 할 것 같습니다 (미안하지만, 확인할 MySQL 인스턴스가 없습니다). –

4

by 절 간단한 그룹은 트릭을 할 것입니다 :

select AuctionID, MAX(Amount) 
from table 
group by AuctionID 
+0

감사합니다, 어떻게 그것을 SUM으로 할 수 있습니까? – Danpe

4
SELECT AuctionId, MAX(Amount) FROM TableName GROUP BY AuctionID 
+0

고마워, 내가 어떻게 그것을 요약 할 수 있을까? – Danpe

+0

SELECT AuctionId, MAX (Amount), Auctionid = A.AuctionId가있는 경매에서 SELECT SUM (금액) AS Auctionid의 GROUP BY 경매 – Karel

관련 문제