Count opportunity activities

I would like to create three fields in the Opportunity listview that

  1. counts number of emails sent to the customer
  2. counts number of phone calls finalised
  3. shows when the last activity is done

I am new to doing this. I have learned that it can be done via workflow but I do not know how to do it after having read the doumentation. I cannot find the counting and I do not know how to add this to the list view.
I have read how it can be made in sugar crm and tried to implement the samwe in suite crm , but it does not work and is very different in some areas.

you can do this - it just depends on the “how”. Workflows might do the trick, I personally would rather go with an hook.

Using workflows, you would first need a field that stores the counter/date per module. Secondly, your workflow should increase that counter/date everytime e.g. a call is being created (using the relations, you should be able to get to the account).
Downside: this approach has issues when deleting activities (reducing the counter becomes tricky). Therefore, I would suggest to use a hook instead.

OK, how do I get the columns of Count call, count Emails and finally last accessed to receive the data from that hook that should run as soon as anyone is looking at the list view.
Sorry for the beginner question, but I have never done this kind of work at all so I am completely novice in this