MySQL:计算剩余天数总和小于30的行

MySQL:计算剩余天数总和小于30的行,mysql,date,count,sum,row,Mysql,Date,Count,Sum,Row,我想统计一下表中的用户,他们的订阅将在一个月30天内过期。这是我的密码: 用户数据库 根据上面的DB。应该有3个人,他们的订阅即将到期-约翰,爱丽丝和布鲁斯。我不希望Ken被计算在内,因为他不想订阅更多 以下是我的MySQL代码: SELECT count(id) AS exp_pax, datediff(exp_date,now()) AS day_left FROM labour_db WHERE day_left<=30 好的,代码只选择一行,其中天的总和小于3

我想统计一下表中的用户,他们的订阅将在一个月30天内过期。这是我的密码:

用户数据库

根据上面的DB。应该有3个人,他们的订阅即将到期-约翰,爱丽丝和布鲁斯。我不希望Ken被计算在内,因为他不想订阅更多

以下是我的MySQL代码:

SELECT count(id) AS exp_pax, 
       datediff(exp_date,now()) AS day_left 
FROM labour_db 
WHERE day_left<=30
好的,代码只选择一行,其中天的总和小于30,但不计算。所以请你们推荐我

关于,

按id删除组以获取您的计数


Count将按预期汇总行,但当与GROUPBY子句组合时,将对每个组进行计数。例如,您可以使用它按过期日期进行分组。如果是这样,则需要添加条件,检查过期日期是否小于今天

SELECT  COUNT(*) totalCount
FROM    user_db 
where   exp_date <= timestampadd(day, 30, now()) AND
        exp_date > NOW()

如果要计算所有记录,其中1过期日期在30天之内,2过期日期不在30天之前,请使用

SELECT count(*) AS exp_pax 
FROM   user_db 
WHERE exp_date<=timestampadd(day, 30, now())
       AND exp_date >= now();

Joseph,是的,它确实算数,但也包括过期日期,我不想让它们算数。@Wilf,你必须告诉我们如何确定Ken不应该算数。然后我们可以为您将其转换为SQL。@DMac,只有exp_日期,其中datediff从今天开始小于30,并且不是负值。因为他不想订阅更多-您怎么知道的?@JW,如果他想订阅的话。订阅日期不应该少于今天,是吗?好的,请看下面我的答案。您需要检查exp_date.JW,您的代码也可以工作,绝对像D Mac一样出色。非常感谢。
SELECT count(*) AS exp_pax 
FROM   user_db 
WHERE exp_date<=timestampadd(day, 30, now())
       AND exp_date >= now();