[SQL] Problem z count()

0

Mam tabelę TAB z kolumnami A, B, C, D wypełnioną kombinacjami binarnymi 4-bitowymi, czyli
0,0,0,0
0,0,0,1
0,0,1,0
...
1,1,1,1
(16 wierszy)

Wywołuję polecenie

select
  A, B, C, D, count(A), count(B), count(C), count(D)
from
  TAB
group by
  A, B, C, D;

Pytanie: Jak funckją count policzyć liczności każdego zbioru osobno?

Grupowanie względem A count powinno zwrócić liczność 8:
od x,0,0,0 do x,1,1,1 => 8 kombinacji
... dodatkowo względem B count powinno zwrócić liczność 4:
od x,y,0,0 do x,y,1,1 => 4 kombinacje
... dodatkowo względem C count powinno zwrócić liczność 2:
od x,y,z,0 do x,y,z,1 => 2 kombinacje
... dodatkowo względem C count powinno zwrócić liczność 1 - jedna konkretna kombinacja

Próbowałem z count(A), count(B) ... ale nie działa - każdy count wyświetla tę samą wartość: liczność ostatniego podzbioru

Możecie pomóc, bo sądzę że problem banalny, ale mimo wszystko zgłupiałem

0

względem A

SELECT DISTINCT b, c, d COUNT(*) FROM tab GROUP BY b, c, d

względem A B

SELECT DISTINCT c, d COUNT(*) FROM tab GROUP BY c, d

względem A B C

SELECT DISTINCT d COUNT(*) FROM tab GROUP BY d
0

A za pomocą jednego zapytania się da?

Ja wymyśliłem coś takiego:

select
    (select distinct count(a) from tab group by a),
    (select distinct count(b) from tab group by a, b),
    (select distinct count(c) from tab group by a, b, c),
    (select distinct count(d) from tab group by a, b, c, d)

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0