0

ビュー内の各属性ごとに NULL レコードと NOT NULL レコードの数を計算する方法はありますか?

たとえば、50 個のビューがあり、それぞれに 20 個の属性があり、期待する結果は次のようになります (例):

table_name -----Column_name---Nulls_count----Not_null_count------count(*)

T1 -----------------C1-------------------20---------------40-----------------------60          
T1------------------C2-------------------11--------------49---------------------60
T1------------------C3-------------------25--------------35---------------------60
T2------------------C1-------------------0--------------100---------------------100
T2------------------C2-------------------40--------------60---------------------100

すべてのビューは sys.all_views に格納され、列は sys.all_tab_columns に格納され、それらの間には table_name フィールドによるリンクがあります。ただし、動的SQLまたはPL/SQLを使用する必要があります。これは、属性ごとにnull行を数えてから、ビュー内の同じ属性に対してnull行ではない行を手動でcount()する狂気があるためです:)そのようなタスクで?すべてのコメントとヘルプに感謝します。

4

2 に答える 2

0

正しい選択は次のとおりです。

 select t.table_name, T.NUM_ROWS, c.column_name, c.num_nulls, T.NUM_ROWS -  c.num_nulls  num_not_nulls, c.data_type, c.last_analyzed
from all_tab_cols c
join sys.all_all_tables t on C.TABLE_NAME = t.table_name
 where c.table_name like 'MV_%' and c.nullable ='Y'
 group by t.table_name, T.NUM_ROWS, c.column_name, c.num_nulls, c.data_type, c.last_analyzed
  order by t.table_name, c.column_name; 
于 2013-07-28T10:41:33.180 に答える