有資料表如下:
create table students
(id number(15),
area varchar2(10),
stu_type varchar2(2),
score number(20,2)
)資料有:
insert into students (id, area, stu_type, score)
values (1, '111', 'g', 80.00);
insert into students (id, area, stu_type, score)
values (1, '111', 'j', 80.00);
insert into students (id, area, stu_type, score)
values (1, '222', 'g', 89.00);
insert into students (id, area, stu_type, score)
values (1, '222', 'g', 68.00);
insert into students (id, area, stu_type, score)
values (2, '111', 'g', 80.00);
insert into students (id, area, stu_type, score)
values (2, '111', 'j', 70.00);
insert into students (id, area, stu_type, score)
values (2, '222', 'g', 60.00);
insert into students (id, area, stu_type, score)
values (2, '222', 'j', 65.00);
insert into students (id, area, stu_type, score)
values (3, '111', 'g', 75.00);
insert into students (id, area, stu_type, score)
values (3, '111', 'j', 58.00);
insert into students (id, area, stu_type, score)
values (3, '222', 'g', 58.00);
insert into students (id, area, stu_type, score)
values (3, '222', 'j', 90.00);
insert into students (id, area, stu_type, score)
values (4, '111', 'g', 89.00);
insert into students (id, area, stu_type, score)
values (4, '111', 'j', 90.00);
insert into students (id, area, stu_type, score)
values (4, '222', 'g', 90.00);
insert into students (id, area, stu_type, score)
values (4, '222', 'j', 89.00);
下面是這樣的:主要是對first_value()、last_value()的問題
主要是last_value()的問題!!!
select id,score,first_value(score) over(order by id) fv from students;
輸出結果我可以理解:
id score fv
1 68.00 68
1 80.00 68
1 80.00 68
1 89.00 68
2 60.00 68
2 65.00 68
2 70.00 68
2 80.00 68
3 58.00 68
3 58.00 68
3 75.00 68
3 90.00 68
4 89.00 68
4 89.00 68
4 90.00 68
4 90.00 68
取的是排序的第乙個值,
而在執行和他相反的語句,
select id,score,last_value(score) over(order by id) fv from students;
時的結果我有點不理解:
id score fv
1 68.00 89
1 80.00 89
1 80.00 89
1 89.00 89
2 60.00 80
2 65.00 80
2 70.00 80
2 80.00 80
3 58.00 90
3 58.00 90
3 75.00 90
3 90.00 90
4 89.00 90
4 89.00 90
4 90.00 90
4 90.00 90
為直麼他取的值會是分組後每組的最後乙個值呢,這和上面的first_value()的語句有點不太一樣啊,他為什麼會自動分組呢,!!!!!!!
有誰能幫我看看呀!!!!各位大蝦們!!!
oracle 分析函式的使用
1.rownum與rowid rownum 行數 行號.在查詢語句中之使用於 rowid 編碼 編號 唯一識別號.他們都是偽列,可以理解成表中的乙個列只是他們並不是你建立的。同樣是偽列區別是什麼呢?rowid是你錄入資料時有資料庫自動為這條記錄新增的唯一的18位編號是乙個物理編號用於找到這條記錄 順...
oracle分析函式的使用
1.實現組資料的相加,如下列資料,以前的處理方法是在前台進行加總處理。如果用分析函式處理就直接在後台處理了。74pcs 74 4 pcs70 1pcs 69 4 pcs65 4pcs 61100 pcs161 4pcs 157 2 pcs155 2pcs 153 2 pcs151 2pcs 1492...
關於oracle 函式的Deterministic
在建立函式索引的時候,自定義的函式需要加deterministic 確定性函式的效能好處是如果使用相同的輸入呼叫函式兩次,oracle可以記住第乙個呼叫的結果因此避免在第二次執行時再次呼叫。但是該功能直到10g release 2才被真正實施。環境11g 測試1 create or replace ...