2016-03-07 751 views
0

實例:計算點擊率(CTR)SQL - 如何計算x/y的標準差(stddev)?

CAST(SUM(num_clicks) as DOUBLE)/CAST(SUM(num_impression) as DOUBLE) as CTR 

我怎麼能計算點擊率的標準差? stddev(CTR)將不起作用,因爲它將是嵌套的集成函數...此外,我無法先計算CTR,然後在其上運行stddev。

+0

爲什麼你不能先計算點擊率,然後在其上運行'STDDEV'?將CTR計算放入子查詢中,並在外部查詢中執行'STDDEV'。 – Barmar

回答

1

您可以先計算點擊率,然後使用子查詢運行STDDEV_POP

SELECT STDDEV_POP(ctr) AS ctr_stddev 
FROM (
    SELECT CAST(SUM(num_clicks) as DOUBLE)/CAST(SUM(num_impression) as DOUBLE) AS ctr 
    FROM yourTable 
    WHERE ... 
    GROUP BY ad_id) AS temp 
+0

酷!爲什麼STDDEV_POP而不是STDDEV_SAMP? – user3164317

+0

我不太確定哪一個是對的,我只是挑了其中一個。 – Barmar