简体   繁体   English

使用GROUP BY的子查询中的MySQL COUNT

[英]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 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 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. 我需要COUNT次访问,不是按人,而是按家庭,我希望使用group by member.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! 在此先感谢您的帮助!

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. 如果出现任何错误或错误数据,请告诉我。

According to your output, you are grouping by fk_family and joining by fk_member to member's id . 根据你的输出,你被分组fk_family并通过加入fk_member会员的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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM