[英]adding a second outer query in a subquery
我在下面有一個查詢,它給了我中位數,我想把我的count(*)放在一個單獨的子查詢中,它計算我在中位數計算中使用的總行數(因為它運行得更好一些)。 最好的方法是什么? 謝謝!
SELECT our_id, AVG(1.0 * our_val) as Median
FROM
( SELECT our_id, our_val,
COUNT(*) OVER (PARTITION BY our_id) AS cnt,
ROW_NUMBER() OVER (PARTITION BY our_id ORDER BY our_val) AS rn
FROM our_table
) AS x
WHERE rn IN ((cnt + 1)/2, (cnt + 2)/2) GROUP BY our_id;
您正在計算子查詢中的count(*)
。 為什么不直接使用它?
SELECT our_id, AVG(1.0 * our_val) as Median, cnt
FROM (SELECT our_id, our_val,
COUNT(*) OVER (PARTITION BY our_id) AS cnt,
ROW_NUMBER() OVER (PARTITION BY our_id ORDER BY our_val) AS rn
FROM our_table
) x
WHERE rn IN ((cnt + 1)/2, (cnt + 2)/2)
GROUP BY our_id, cnt;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.