2017-11-26 6 views
0

'RouteID'의 최고 기록이 있어야하며이 중 'Economy Price'가 가장 많은 사람이 있어야합니다. sql에서 최상위 레코드를 얻고 다른 조건을 얻는 방법?

는 이미이 코드를 시도 :

SELECT RouteID 
    , Count (RouteID) 
    FROM [Session6].[dbo].[Schedules] 
Group 
    by RouteID 
Order 
    by count(RouteID) DESC 

을하지만 결과는 이것이다 :

Result

결과는 '아닌 대부분의 합계를'RouteID '의 상단 가장 수가 있습니다 이코노미 프라임 '

Table

+1

결과가 정확하기 때문에 명확하게 설명해야합니다. - 개수에 따라 정렬되며 쿼리에 'EconomyPrice'가 없습니다. – Plutonix

답변

0

그런 다음 RouteID를 계산하는 대신 EconomyPrice을 합산하지 마십시오. 이러한 조건이 다른 경로 IDS에 의해 충족 될 수 있기 때문에

SELECT 
    RouteID, 
    SUM(EconomyPrice) AS TotalEconomyPrice 
FROM 
    [Session6].[dbo].[Schedules] 
GROUP BY 
    RouteID 
ORDER BY 
    SUM(EconomyPrice) DESC 

당신은 가장 높은 수와 동시에 상단에있는 가장 높은 총 경제적 가격으로 경로를 가질 수 없습니다. 이것은 SQL의 제한 사항이 아 U니다. 그것은 단순히 비논리적입니다.

또한 평균으로 AVG(EconomyPrice)을 사용할 수도 있습니다.

+0

정말 고맙습니다. –