Wie zähle ich eindeutige Werte?

9

Ich versuche, die Anzahl der eindeutigen IP-Adressen zu ermitteln (in diesem Fall '3'). Die Tabelle sieht folgendermaßen aus:

Struktur:

CREATE TABLE bandits (
  key text NOT NULL,
  ip_address inet,
  offence text,
  count bigint DEFAULT 1);

Daten:

COPY Banditen (Schlüssel, IP-Adresse, Beleidigung, Anzahl) FROM stdin;
127.0.0.1_testing 127.0.0.1 testing 1
127.0.0.2_testing 127.0.0.2 testing 3
127.0.0.2_testing2 127.0.0.2 testing2 1
127.0.0.3_testing 127.0.0.3 testing 1
Krawattenkämpfer
quelle
1
Versuchen Sieselect distinct .....
John Gardeniers

Antworten:

15
SELECT COUNT(DISTINCT ip_address) FROM bandits
Mark Henderson
quelle
1
Wow, danke, ich habe versucht, SELECT DISTINCT COUNT [...] usw. Manchmal sehe ich nur nicht ...
Tie-Fighter
2

Wie hier erwähnt: /programming/11250253/postgresql-countdistinct-very-slow , könnte es viel schneller sein, stattdessen eine etwas längere Version zu verwenden:

SELECT count(*) FROM (SELECT DISTINCT ip_address FROM bandits) AS bandits_distinct
icl7126
quelle