Let’s say I have a table:
ID A B 10 0 0 11 0 0 12 0 1 13 0 1 14 1 1 15 1 1 16 1 1
And I want my table output to be:
ID A B A_B_COUNT 10 0 0 2 11 0 0 2 12 0 1 2 13 0 1 2 14 1 1 3 15 1 1 3 16 1 1 3
but with the code I have here my output looks like this
SELECT ID, COUNT(*) AS A_B_COUNT FROM table GROUP BY A, B ID A B A_B_COUNT 10 0 0 2 12 0 1 2 14 1 1 3
Any way I can create an sql query to is like my top table vs the one I make currently Using: 10.5.5-MariaDB
Advertisement
Answer
Use window functions:
select t.*, count(*) over (partition by a, b) as a_b_count from t;