繁体   English   中英

分组依据不汇总SQL中的按列分组

[英]Group By not aggregating the group by column in 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

与其按年分组,不如按成员人数分组。 我想我正在做某事并且看不到树木的树木:

1, 2005
4, 2005
1, 2005
1, 2006
5, 2006
5, 2006

我正在寻找的是

 6, 2005
11, 2006

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

您正在按account_login.memberFrom分组,这将创建每行。

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

而是使用GROUP BY from_unixtime(account_login.memberFrom, '%Y')

暂无
暂无

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

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