| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> c.d.o.misc -> Re: how to compute median ?
ORACLE does not yet have a "median" function. So you have to write
your own. Many ways you can code it. This is one example:
SQL> select * from t2;
C1
2
4
5
8
11
0
5
0
0
0
0
11 rows selected.
SQL> select c1, row_number() over (order by c1) rn, ceil(count(1) over()/2) mdn from t2;
C1 RN MDN
---------- ---------- ----------
0 1 6
0 2 6
0 3 6
0 4 6
0 5 6
2 6 6
4 7 6
5 8 6
5 9 6
8 10 6
11 11 6
11 rows selected.
SQL> select c1 from (select c1, row_number() over (order by c1) rn,
ceil(count(1) over()/2) mdn from
t2) where rn=mdn;
C1
2
SQL> insert into t2 values(9);
1 row created.
SQL> select c1, row_number() over (order by c1) rn, ceil(count(1) over()/2) mdn from t2;
C1 RN MDN
---------- ---------- ----------
0 1 6
0 2 6
0 3 6
0 4 6
0 5 6
2 6 6
4 7 6
5 8 6
5 9 6
8 10 6
9 11 6
C1 RN MDN
---------- ---------- ----------
11 12 6
12 rows selected.
SQL> select c1 from (select c1, row_number() over (order by c1) rn,
ceil(count(1) over()/2) mdn from
t2) where rn=mdn;
C1
2
SQL>
Laly KATTOOR <laly.kattoor_at_bnpparibas.com> wrote in message news:<2002109-101537-355947_at_foorum.com>...
> Hi,
>
> I would like to know whether there is a trick to compute median in a sql query ?
>
>
> Thanks by advance for your answers.
>
>
> Laly.
Received on Wed Oct 09 2002 - 12:16:36 CDT
![]() |
![]() |