Diese Frage ist über Oracle 12.1.0.2 auf Aix 7.2.Orakel Sql Rückkehr zählen zusammen mit anderen Spalten
Ich habe 5 Tabellen und ich möchte diese Abfrage tun:
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'
Ich möchte die drei Spalten in der SELECT-Klausel und die tatsächliche Anzahl der 5-Tabellen. Ich möchte dies in einer Abfrage tun, wenn möglich.
Wenn ich eine Gruppe nach Besitzer, Tabellenname, LAST_DDL_TIME hinzufüge, wird für jede Zeile der Wert 1 zurückgegeben.
Also meine Ergebnismenge ich so aussehen soll:
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
"tatsächliche Anzahl von 5 Tabellen". Du meinst 5? Oder suchen Sie nach der Anzahl der Reihen? – ruudvan
Warum brauchen Sie 'Eigentümer' in der Ausgabe, wenn Sie nach' owner = 'WAREHOUSE' filtern? Auch - Sie brauchen wirklich die aktuelle Anzahl (*) - zählt seit dem letzten Mal Statistiken gesammelt wurden nicht ausreichen? – mathguy
Wenn Sie nur eine ungefähre Anzahl möchten, können Sie 'dba_tab_statistics.num_rows' verwenden. Wenn Sie die genaue Anzahl möchten, könnten Sie eine SQL-Funktion schreiben, um eine Zeilenanzahl zurückzugeben, wenn Sie den Eigentümer und Tabellenname als Parameter erhalten. Dann rufen Sie einfach die SQL-Funktion in Ihrer Auswahl auf. –