Spunem că avem un tabel:
cheie | valoarea | _count |
---|---|---|
o | b | 3 |
c | d | 2 |
că vrem să-și extindă astfel încât fiecare cheie se mapate la fiecare valoare distinctă în masă și devine un _count
de 0 dacă perechea cheie-valoare nu au deja un număr. De exemplu, pentru tabelul de mai sus, aș dori să văd:
cheie | valoarea | _count |
---|---|---|
o | b | 3 |
o | d | 0 |
c | d | 2 |
c | b | 0 |
Am o soluție de lucru:
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;
Dar bănuiesc că ar putea fi mai ușor/mai ușor de citit/modalitate mai eficientă de a pune în aplicare acest ... sugestii?