一意のip_addresses(この場合は「3」)の数を取得しようとしています。テーブルは次のようになります。
構造:
CREATE TABLE bandits (
key text NOT NULL,
ip_address inet,
offence text,
count bigint DEFAULT 1);
データ:
COPY盗賊(key、ip_address、offence、count)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
SELECT COUNT(DISTINCT ip_address) FROM bandits
ここで述べたように https://stackoverflow.com/questions/11250253/postgresql-countdistinct-very-slow 、代わりに少し長いバージョンを使用する方がはるかに高速になる可能性があります:
SELECT count(*) FROM (SELECT DISTINCT ip_address FROM bandits) AS bandits_distinct