この質問は、aix 7.2のOracle 12.1.0.2に関するものです。oracle sql return count他の列と一緒に
私は5つのテーブルを持っていると私は、このクエリを実行したい:
select owner, table_name, LAST_DDL_TIME, count(*)
from dba_objects
where owner = 'WAREHOUSE'
and OBJECT_NAME in ('table1','table2','table3','table4','table5')
and OBJECT_TYPE = 'TABLE'
私はselect句と5つのテーブルの実際のカウントで3列にしたいです。可能であれば、これを1つのクエリで実行したいと思います。
owner、table_name、LAST_DDL_TIMEでグループを追加すると、各行に1のカウントが返されます。
だから私はしたい私の結果セットは次のようになります。
OWNER OBJECT_NAME LAST_DDL_TIME COUNT(*)
SCHEMA1 TABLE1 7/9/2016 3:47:27 PM 5932158
SCHEMA1 TABLE2 7/9/2016 3:47:31 PM 432
SCHEMA1 TABLE3 7/9/2016 3:47:15 PM 958741
SCHEMA1 TABLE4 7/9/2016 3:47:31 PM 11298
SCHEMA1 TABLE5 7/9/2016 3:47:15 PM 3645873385
「実際の5つのテーブルの数」あなたは5を意味しますか?または、行数を探していますか? – ruudvan
'owner = 'WAREHOUSE''でフィルタリングしている場合、なぜ出力に' owner'が必要ですか?また、統計情報が収集された最後の時点では、現在のカウント(*) - カウントが本当に必要ですか? – mathguy
おおよその数だけが必要な場合は、 'dba_tab_statistics.num_rows'を使用できます。正確なカウントが必要な場合は、所有者とtable_nameがパラメータとして渡されたときに行数を返すSQL関数を記述できます。次に、選択した関数でSQL関数を呼び出します。 –