

 Amazon Redshift unterstützt UDFs ab Patch 198 nicht mehr die Erstellung von neuem Python. Das bestehende Python UDFs wird bis zum 30. Juni 2026 weiterhin funktionieren. Weitere Informationen finden Sie im [Blog-Posting](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Beispiele für Katalogabfragen
<a name="c_join_PG_examples"></a>

Die folgenden Abfragen zeigen einige Möglichkeiten für die Abfrage von Katalogtabellen, um nützliche Informationen zu einer Amazon-Redshift-Datenbank zu erhalten.

## Anzeige von Tabellen-ID, Datenbank, Schema und Tabellenname
<a name="c_join_PG_examples-view-tableid-db-schema-tablename"></a>

Die folgende Ansichtsdefinition verbindet die Systemtabelle STV\$1TBL\$1PERM mit den Systemkatalogtabellen PG\$1CLASS, PG\$1NAMESPACE und PG\$1DATABASE zur Ausgabe von Tabellen-ID, Datenbankname, Schemaname und Tabellenname.

```
create view tables_vw as
select distinct(stv_tbl_perm.id) table_id
,trim(pg_database.datname)   db_name
,trim(pg_namespace.nspname)   schema_name
,trim(pg_class.relname)   table_name
from stv_tbl_perm
join pg_class on pg_class.oid = stv_tbl_perm.id
join pg_namespace on pg_namespace.oid = pg_class.relnamespace
join pg_database on pg_database.oid = stv_tbl_perm.db_id;
```

Das folgende Beispiel gibt die Informationen für Tabellen-ID 117855 zurück.

```
select * from tables_vw where table_id = 117855;
```

```
table_id | db_name   | schema_name | table_name
---------+-----------+-------------+-----------
  117855 |       dev | public      | customer
```

## Auflisten der Anzahl der Spalten pro Amazon-Redshift-Tabelle
<a name="c_join_PG_examples-list-the-number-of-columns-per-amazon-redshift-table"></a>

Die folgende Abfrage verknüpft einige Katalogtabellen, um herauszufinden, wie viele Spalten jede Amazon-Redshift-Tabelle enthält. Amazon-Redshift-Tabellennamen werden sowohl in PG\$1TABLES als auch in STV\$1TBL\$1PERM gespeichert. Verwenden Sie nach Möglichkeit PG\$1Tables, um Amazon-Redshift-Tabellennamen zurückzunehmen.

Diese Abfrage beinhaltet keine Amazon-Redshift-Tabellen.

```
select nspname, relname, max(attnum) as num_cols
from pg_attribute a, pg_namespace n, pg_class c
where n.oid = c.relnamespace and  a.attrelid = c.oid
and c.relname not like '%pkey'
and n.nspname not like 'pg%'
and n.nspname not like 'information%'
group by 1, 2
order by 1, 2;

nspname | relname  | num_cols
--------+----------+----------
public  | category |        4
public  | date     |        8
public  | event    |        6
public  | listing  |        8
public  | sales    |       10
public  | users    |       18
public  | venue    |        5
(7 rows)
```



## Auflisten der Schemata und Tabellen in einer Datenbank
<a name="c_join_PG_examples-list-the-schemas-and-tables-in-a-database"></a>

Die folgende Abfrage verbindet STV\$1TBL\$1PERM mit einigen PG-Tabellen zur Ausgabe einer Liste von Tabellen in der TICKIT-Datenbank und ihrer Schemanamen (Spalte NSPNAME). Dazu gibt die Abfrage die Gesamtzahl der Zeilen in jeder Tabelle aus. (Diese Abfrage ist nützlich, wenn mehrere Schemata in Ihrem System die gleichen Tabellennamen haben.)

```
select datname, nspname, relname, sum(rows) as rows
from pg_class, pg_namespace, pg_database, stv_tbl_perm
where pg_namespace.oid = relnamespace
and pg_class.oid = stv_tbl_perm.id
and pg_database.oid = stv_tbl_perm.db_id
and datname ='tickit'
group by datname, nspname, relname
order by datname, nspname, relname;

datname | nspname | relname  |  rows
--------+---------+----------+--------
tickit  | public  | category |     11
tickit  | public  | date     |    365
tickit  | public  | event    |   8798
tickit  | public  | listing  | 192497
tickit  | public  | sales    | 172456
tickit  | public  | users    |  49990
tickit  | public  | venue    |    202
(7 rows)
```

## Listet Tabellen IDs, Datentypen, Spaltennamen und Tabellennamen auf
<a name="c_join_PG_examples-list-table-ids-data-types-column-names-and-table-names"></a>

Die folgende Abfrage listet einige Informationen zu jeder Benutzertabelle und ihren Spalten aus: Tabellen-ID, Tabellenname, die Namen der Spalten sowie den Datentyp jeder Spalte:

```
select distinct attrelid, rtrim(name), attname, typname
from pg_attribute a, pg_type t, stv_tbl_perm p
where t.oid=a.atttypid and a.attrelid=p.id
and a.attrelid between 100100 and 110000
and typname not in('oid','xid','tid','cid')
order by a.attrelid asc, typname, attname;

attrelid |  rtrim   |    attname     |  typname
---------+----------+----------------+-----------
  100133 | users    | likebroadway   | bool
  100133 | users    | likeclassical  | bool
  100133 | users    | likeconcerts   | bool
...
  100137 | venue    | venuestate     | bpchar
  100137 | venue    | venueid        | int2
  100137 | venue    | venueseats     | int4
  100137 | venue    | venuecity      | varchar
...
```

## Zählen der Anzahl der Datenblöcke für jede Spalte in einer Tabelle
<a name="c_join_PG_examples-count-the-number-of-data-blocks-for-each-column-in-a-table"></a>

Die folgende Abfrage verbindet die Tabelle STV\$1BLOCKLIST mit PG\$1CLASS zur Ausgabe von Speicherinformationen für die Spalten in der Tabelle SALES.

```
select col, count(*)
from stv_blocklist s, pg_class p
where s.tbl=p.oid and relname='sales'
group by col
order by col;

col | count
----+-------
  0 |     4
  1 |     4
  2 |     4
  3 |     4
  4 |     4
  5 |     4
  6 |     4
  7 |     4
  8 |     4
  9 |     8
 10 |     4
 12 |     4
 13 |     8
(13 rows)
```