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');