Bir tablo var :
anahtar | değer | _sayma |
---|---|---|
a | b | 3 |
c | d | 2 |
her bir anahtarın tablodaki her bir ayrı değere eşlenmesi ve bir _count
anahtar-değer çifti zaten bir sayıya sahip değilse, 0'dan. Örneğin, yukarıdaki tablo için şunu görmek isterim:
anahtar | değer | _sayma |
---|---|---|
a | b | 3 |
a | d | 0 |
c | d | 2 |
c | b | 0 |
Çalışan bir çözümüm var:
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;
Ancak bunu uygulamak için daha kolay/daha okunabilir/daha verimli bir yol olabileceğinden şüpheleniyorum-herhangi bir öneriniz var mı?