分组不在SQL中按列聚合组

Chr*_*yne 1 mysql sql

我正在尝试获得一些用户付费服务并在某一年内从mysql数据库注册的用户数量.会员可以支付多种服务,因此可以计算两次:

select 
    count(payment_order.memberId) as members,
    from_unixtime(account_login.memberFrom, '%Y') as memberFrom
from 
    payment_order
join 
    account_login 
on 
    payment_order.memberId = account_login.memberId
Where 
    account_login.memberFrom != '0'
    and payment_order.`status` = 'paid'
    and payment_order.dateCompleted >= '2010-01-01 00:00:00'
    and payment_order.dateCompleted <= '2011-12-31 23:59:59'
group by memberFrom
Run Code Online (Sandbox Code Playgroud)

它不是按年份分组,而是按个别成员计数进行分组.我想我正在做一些事情,可以看到木头的树木:

1, 2005
4, 2005
1, 2005
1, 2006
5, 2006
5, 2006
Run Code Online (Sandbox Code Playgroud)

我正在寻找的是

 6, 2005
11, 2006
Run Code Online (Sandbox Code Playgroud)

感谢任何可能解释我的困惑的指针

Mat*_*lie 6

您正在进行分组account_login.memberFrom,这会创建每个单独的行.

然后,您from_unixtime(account_login.memberFrom, '%Y')在每个行上选择,创建重复值.

相反,使用 GROUP BY from_unixtime(account_login.memberFrom, '%Y')