CREATE TABLE table1 (
key1 integer,
key2 character varying(128),
key3 character varying(64),
key4 character varying(128),
key5 character varying(10),
key6 timestamp with time zone,
key7 timestamp with time zone,
key8 integer NOT NULL, GENERATED BY DEFAULT AS IDENTITY
key9 boolean NOT NULL,
key10 timestamp with time zone
);
ALTER TABLE table1 ALTER COLUMN key8 ADD GENERATED BY DEFAULT AS IDENTITY (
SEQUENCE NAME table1_key8_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1
);
CREATE TABLE table2 (
key2 integer NOT NULL, GENERATED BY DEFAULT AS IDENTITY
key3 timestamp with time zone NOT NULL,
key1 integer
);
ALTER TABLE table2 ALTER COLUMN key2 ADD GENERATED BY DEFAULT AS IDENTITY (
SEQUENCE NAME table2_key2_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1
);
CREATE TABLE table3 (
key1 character varying(128) NOT NULL,
key2 text
);
CREATE TABLE table4 (
key1 character varying(64) NOT NULL,
key2 text
);
SELECT table1.key1 AS "a"a,
table1.key2 AS "b"b,
table1.key3 AS "c"c,
table1.key4 AS "d"d,
table2.key1 AS "e"e,
COUNT(DISTINCT table1.key8) FILTER (WHERE table1.key5 = 'A') AS "f"f,
COUNT(DISTINCT table1.key8) FILTER (WHERE table1.key5 = 'B') AS "g"g,
COUNT(DISTINCT table1.key8) FILTER (WHERE table1.key5 = 'C') AS "h"h,
COUNT(DISTINCT table1.key8) FILTER (WHERE table1.key5 = 'D') AS "i"i,
COUNT(DISTINCT table1.key8) FILTER (WHERE table1.key5 IS NULL) AS "j"j,
SUM((table1.key6 - table1.key7)) AS "k"k,
COUNT(DISTINCT table1.key8) FILTER (WHERE table1.key9) AS "l"l,
COUNT(DISTINCT table1.key8) AS "m"m
FROM table1
LEFT OUTER JOIN table3 ON (table1.key4 = table3.key1)
LEFT OUTER JOIN table2 ON (table1.key1 = table2.key2)
LEFT OUTER JOIN table4 ON (table1.key3 = table4.key1)
WHERE table1.key10 BETWEEN '2023-10-31 23:00:00+00:00' AND '2023-11-02 23:00:00+00:00'
GROUP BY 1,
2,
3,
4,
5,
table2.key3,
table4.key2,
table3.key2
ORDER BY table2.key3 DESC,
table1.key2 ASC,
table4.key2 DESC,
table3.key2 DESC,
table2.key1 ASC
LIMIT 20