Monday, June 8, 2009

COUNT HAKKINDA

COUNT hemen hemen her zaman karşımıza çıkan bir SQL cümleciği neredeyse. Bunun hakkında birkaç bişey söylemek gerek bence.
* Count full table scan (tam tablo taraması) yapan bir işlemdir.
* Count(*) derseniz tablodaki bütün rowların sayısını verir.
* Count(sutun_adi) derseniz o sütündaki null olmayan satırların sayısını verir.
* Buradan anlaşılacaği gibi count null değerleri işlemez. Kullanırken buna dikkat ediniz.

create table tmp_deneme_count_ali(a number,b number)

select count(1) from tmp_deneme_count_ali
select count(a) from tmp_deneme_count_ali
select count(*) from tmp_deneme_count_ali
select * from tmp_deneme_count_ali


SQL sorgularında boş olmayan kayıtları getirmek için IS NOT NULL kalıbını kullanırız.

select distinct count(1) from all_tab_comments t where comments is not null --1103

select distinct count(comments) from all_tab_comments t --1103

select distinct count(*) from all_tab_comments t --5276

Başka bir userın altında tablo oluşturmak için aşağıdaki SQl kullanalabilinir.

create table hr.isnotnull as (select comments from all_tab_comments)



No comments: