mesnicka
mesnicka

Reputation: 2548

MySQL COUNT in subquery using GROUP BY

I was searching and googling a lot but it was helpless. Here is my problem, with these tables:

Table members

   id       name    address     fk_family
    1       Tony    A Street        1
    2       Miles   B Street        1
    3       Vic     C Street        1
    4       Luca    D Street        2
    5       Matt    E Street        3

Table visits

id      fk_member    date
1       1            2013-07-20
2       1            2013-07-22
3       1            2013-07-23
4       2            2013-07-22
5       3            2013-07-19
6       4            2013-07-21
7       4            2013-07-22
8       4            2013-07-23
9       5            2013-07-20
10      5            2013-07-23

I need COUNT of visits, not by person, but by family, i expect using group by members.fk_family. Result table should looks like this:

fk_family       visit_count
1               5
2               3
3               2

I cant find the correct way and right syntax to do this. Thanks in advance for your help!

Upvotes: 0

Views: 73

Answers (2)

Daniel W.
Daniel W.

Reputation: 32290

According to your output, you are grouping by fk_family and joining by fk_member to member's id. Just like this:

 SELECT
      m.fk_family AS fk_family,
      COUNT(v.id) AS visits_count
 FROM visits v
 JOIN members m
   ON v.fk_member = m.id
GROUP BY m.fk_family

Upvotes: 1

uvais
uvais

Reputation: 416

try this:

 select fk_member as family, count(v.fk_member) visit_count from members m
 inner join visits v on m.fk_family = v.fk_member
 group by v.fk_member

if any error or wrong data occurs then let me know please.

Upvotes: 1

Related Questions