<分区>
我是 SQL 的新手,想知道如何为这个问题编写查询。 假设我们有这些字段: date_created date_unsubscribed subscriberid
如何编写一个 SQL 查询,按月列出有多少人订阅了列表、取消订阅了列表,以及有多少净订阅者(新订阅者减去取消订阅者)。 全部在一个查询中...
<分区>
我是 SQL 的新手,想知道如何为这个问题编写查询。 假设我们有这些字段: date_created date_unsubscribed subscriberid
如何编写一个 SQL 查询,按月列出有多少人订阅了列表、取消订阅了列表,以及有多少净订阅者(新订阅者减去取消订阅者)。 全部在一个查询中...
最佳答案
这是一个使用条件聚合
和union all
的选项:
select month(dt),
count(case when subscribe = 1 then 1 end) subscribecount,
count(case when subscribe = -1 then 1 end) unsubscribecountt,
sum(subscribe) overallcount
from (
select date_created as dt, 1 as subscribe
from yourtable
union all
select date_unsubscribed, -1
from yourtable
where date_unsubscribed is not null
) t
group by month(dt)
子查询创建一个日期列表,带有订阅或取消订阅的标志。然后您可以使用 count
和 case
来确定订阅者/取消订阅者的适当数量。
关于mysql - 月数的嵌套 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38647478/