0
計算平均角度表(以度角[0, 360]
)我用以下語句:(顯然)等於輸入數據的不同結果?
SELECT
(CASE WHEN (a < 0.0)
THEN a + 360.0
ELSE a END) as angle
FROM (
SELECT
degrees(atan2(avg(sin(radians(x))), avg(cos(radians(x))))) as a
FROM
angle_t
) as t
UNION
SELECT
x
FROM
angle_t
,當它來測試我試圖包含雅虎的氣象資料我的表:
WITH angle_t(x) AS (
SELECT
cast(wind_direction as double precision)
FROM
weather_yahoo
WHERE
time >= current_date - interval '1 days' - interval '1 hours'
AND
time <= current_date - interval '1 days')
輸出是:
246.670436944698
250.0
240.0
我想知道爲什麼平均角不是245但246.67 ...所以我跑了另一個測試與ap parantly等於輸入數據:
WITH angle_t(x) AS (VALUES
(240 :: double precision),
(250))
輸出顯示(未)預期的結果:
245.0
250.0
240.0
任何人都可以給我講解一下? (這是PostgreSQL 8.4)
沒有數據和表格。定義它還挺硬。 SQLFiddle呢? –
從你的問題你運行兩種不同的解決方案相同的輸入。您的標題有誤導性。 – Kuberchaun
@JustBob事實證明,它不是相同的輸入,但它看起來像相同的輸入。這就是爲什麼我把(顯然)_。 – moooeeeep