dml操作(insert
,
delete
,
update)之后,一定要使用commit或rollback命令来结束该事务,否则直接关闭sql
plus,数据库默认rollback之前未提交的事务,所以今天你在select的时候
会显示未选定行。
而手动输入commit,rollback
这类的命令,是显示的提交事务(完成事务)。
如果在dml操作之后未及时显示的提交,而是又进行了ddl操作(create
alter...),则数据库会隐式的提交之前未完成的事务。
所以
下次一定要注意哦~~
定义一个临时表,一个序列位,把数据按升或降序插入临时表内,查看总数为奇或偶,奇则取正中的序列值对应的数据,偶则取中间两个序列值对应的平均值
--1
select
median
(sales)
from
total_sales
--2
select
avg(sales)
from
(select
row_number()
over(order
by
sales)
as
rn,
name,
sales
from
total_sales)
t,
(select
count(*)
/
2
as
mid_c
from
total_sales)
b
where
rn
=
b.mid_c
or
rn
=
trunc
(b.mid_c+1)