说我们有一个表格:
关键 | 值 | _count |
---|---|---|
一个 | b | 3 |
c | d | 2 |
我们想要扩大这样,每个关键变映为每个不同的价值在表格,并得到一个 _count
0如果关键的价值对有没有没有计数。 例如,用于上表,我谨请参阅:
关键 | 值 | _count |
---|---|---|
一个 | b | 3 |
一个 | d | 0 |
c | d | 2 |
c | b | 0 |
我有一个工作方案:
WITH key_value_pairs AS (
SELECT
a.key,
b.value
FROM
(SELECT DISTINCT key FROM table) a, (SELECT DISTINCT value FROM table) b
)
SELECT
kvp.key,
kvp.value,
COALESCE(base._count, 0) _count
FROM
key_value_pairs kvp
LEFT JOIN
table base ON base.key = kvp.key AND base.value = kvp.value;
但我怀疑有可能是一个更简单的/更具可读性的更高效率的方式执行这一--的任何建议?