2011-03-14 11 views
3

날씨 데이터베이스를 향한 SQL 쿼리를 작성 중입니다. wind_direction 및 windspeed가 필요합니다.
이 내 currect 쿼리입니다 :평균 하위 쿼리가있는 SQL 쿼리

SELECT wind_direction, 
     windspeed 
    FROM weather 
    WHERE time >= curdate() and 
     time < (curdate() + interval 1 day) AND 
     windspeed > 0 
    ORDER BY wind_direction ASC 

이 풍속 = 0와 ​​오늘에 대한 데이터가 표시됩니다 모든 값을 제거합니다.

쿼리 출력 : 당신은 내가 이해할 수있는 중복 값을 가져 볼 수 있지만 내 그래프 시스템이이 기능을 지원하지 않기 때문에, 그것은 사용할 값 모르는

wind_direction windspeed 
0    10.1 
0    11.2 
23    7.6 
23    1.4 

.
필요한 것은 하나의 고유 한 wind_direction과 그 방향의 avg() 풍속입니다. 단일 wind_direction가, 말, 즉 가장 큰 평균 속도로,이를 사용하려면

답변

5
SELECT wind_direction, AVG(windspeed) 
FROM weather 
WHERE time >= curdate() and time < (curdate() + interval 1 day) 
     AND windspeed > 0 
GROUP BY 
     wind_direction 
ORDER BY 
     wind_direction ASC 

:

SELECT wind_direction, AVG(windspeed) AS avg_speed 
FROM weather 
WHERE time >= curdate() and time < (curdate() + interval 1 day) 
     AND windspeed > 0 
GROUP BY 
     wind_direction 
ORDER BY 
     avg_speed DESC 
LIMIT 1 
+0

mysql을 알고 않는 방법이 올바른가하는 AVG (풍속)을 할 때 그룹을 사용하는 자료? – HyperDevil

+0

@HyperDevil : 'GROUP BY'에서 어떤 레코드를 결합할지 알려줍니다 (귀하의 경우에는'wind_direction '과 동일한 값을 공유합니다). – Quassnoi

+0

하지만 select에는 여러 개의 wind_directions이 있습니까? – HyperDevil