Skip to content
Advertisement

SQL Group by Count String occurance

I am wanting to count the occurrences of a specific string in SQL. I have UserID’s which are unique and each user can carry out an “action”. I’ve tried a few things but still cannot get it to work.

So these actions can be “throw” “pickup” “craft”

SELECT userid, COUNT(action)
FROM `playeractions`
GROUP BY action;
userid COUNT(action)
7656119 129
76561194 4

Expected results required

userid throw pickup craft
7656119 29 100 0
76561194 2 2 0

Existing data of the table

userid action
7656119 throw
76561194 pickup
76561194 pickup
76561194 throw

Advertisement

Answer

you can simple privot the data

SELECT
    userid,
    SUM(action = 'throw') as 'throw',
    SUM(action = 'pickup') as 'pickup',
    SUM(action = 'craft') as 'craft'
FROM table1
GROUP BY userid
User contributions licensed under: CC BY-SA
2 People found this is helpful
Advertisement