我正在寻找优雅的方式来编写这个查询的 PostgreSQL 版本:
SELECT count(distinct a,b) / count(distinct c,d)
FROM t1
GROUP BY e;
它可以通过 CONCAT 函数来完成,但在这种情况下我会得到巨大的性能下降。
每个不同的计数都可以这样写:
SELECT count(*), e FROM
(SELECT a, b, e FROM t1 GROUP BY a, b, e) as tmp
GROUP BY e;
和
SELECT count(*), e FROM
(SELECT c, d, e FROM t1 GROUP BY c, d, e) as tmp
GROUP BY e;
但我找不到如何将它们组合成一个查询以获得最终结果
这是创建表来测试语法:
CREATE TABLE t1 (
a int,
b int,
c int,
d int,
e int
);