Sql 如果一行中的条件为真(已分组)

Sql 如果一行中的条件为真(已分组),sql,Sql,表: 我需要的是: |Months |ID|Commission| |2020-01|1 |2312 | |2020-02|2 |24412 | |2020-02|1 |123 | |... |..|... | 它应该是什么样子: COUNT(Months), ID, SUM(Commission), Country GROUP BY ID... 因此,我想知道每个ID收到佣金的月数,但是(这是我请求您帮助的部分),如果该ID在本月(本月)之

表:

我需要的是:

|Months |ID|Commission|
|2020-01|1 |2312      |
|2020-02|2 |24412     |
|2020-02|1 |123       |
|...    |..|...       |
它应该是什么样子:

COUNT(Months),
ID,
SUM(Commission),
Country

GROUP BY ID...
因此,我想知道每个ID收到佣金的月数,但是(这是我请求您帮助的部分),如果该ID在本月(本月)之前仍收到佣金,我想将其从列表中排除。如果他在上个月或去年停止接收通信,我希望看到他出现在谈判桌上。
换句话说,我想要一个有老客户(不再收取佣金)的表。

使用聚合。假设每月有一行:

|Months |ID|Commission|
|4      |1 |5356      |
|6      |2 |5436      |
|...    |..|...       |
选择id,计数(*)
从t
按id分组
最大(月)

注意,这使用了MySQL语法,这是原始标记之一。

我删除了不一致的数据库标记。请仅使用您正在使用的数据库进行标记。
select id, count(*)
from t
group by id
having max(months) < date_format(now(), '%Y-%m');