具有取决于行的特定条件的 MySQL 聚合

奈卢杰

我试图弄清楚如何向取决于特定行的累积添加额外条件。

我想做的是这样的:

select @datee := DATE_FORMAT(date, "%Y-%m") datee, count(distinct name) new
from requests where name not in (select name from requests where DATE_FORMAT(date, "%Y-%m") != @datee) 
group by datee;

用文字表示:对于每个日期,它应该显示仅在该特定月份出现的名称数量。

结果可能如下所示:

datee   new
2018-11 343  <-- all these names only occur in 2018-11
2018-12 384  <-- all these names only occur in 2018-12
2019-01 438  ...
2019-02 460  ...
2019-03 442
2019-04 463
2019-05 470
2019-06 290

谢谢你的帮助!

鲑鱼

使用您的数据的简化版本,您可以检查该名称是否仅在一个月内出现并加入计数(不同)。

drop table if exists t;
create table t
(name varchar (1), mm int);

insert into t values
('a',1),('a',2),('a',3),
('b',2),
('c',1),('c',1),
('d',3),
('e',2),('e',2);



select mm,count(distinct t.name) obs
from t
join
(
select name, count(distinct mm) occurances
from
t 
group by name having occurances = 1 
) s on s.name = t.name
group by mm;

+------+-----+
| mm   | obs |
+------+-----+
|    1 |   1 |
|    2 |   2 |
|    3 |   1 |
+------+-----+
3 rows in set (0.00 sec)

注意 a 完全消失,因为它出现在所有 3 个月内。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

有2个条件的MySQL Crosstab聚合

来自分类Dev

具有聚合功能的MySQL Case语句

来自分类Dev

如何在MySQL的特定范围内选择具有特定条件的行?

来自分类Dev

没有GROUP BY子句的MySQL聚合函数

来自分类Dev

MySQL - 带有非聚合列的 COUNT()

来自分类Dev

通过唯一的聚合并在熊猫中具有特定条件进行分组

来自分类Dev

在特定条件下使用聚合()函数和 R 聚合行,而不使用 dplyr

来自分类Dev

选择所有聚合均满足特定条件的聚合根

来自分类Dev

MySQL与MongoDB聚合性能

来自分类Dev

MySql:复杂的聚合查询

来自分类Dev

MySQL查询聚合

来自分类Dev

MySql:复杂的聚合查询

来自分类Dev

聚合MySQL计算

来自分类Dev

MySQL查询聚合

来自分类Dev

MySQL:聚合计数

来自分类Dev

聚合 MySQL 查询

来自分类Dev

同一列的MYSQL基本条件聚合

来自分类Dev

MySQL:在每个聚合组中选择最后一行

来自分类Dev

MySQL:在每个聚合组中选择最后一行

来自分类Dev

带有聚合函数的奇怪的MySQL连接查询结果

来自分类Dev

mysql/mariadb - LEFT JOIN 聚合不返回所有值

来自分类Dev

Mongo聚合与条件日期聚合

来自分类Dev

Mongo聚合与条件日期聚合

来自分类Dev

MYSQL从具有特定条件的两个表中选择值

来自分类Dev

如何在mysql中检索具有特定条件的记录?

来自分类Dev

R:根据特定条件聚合数据帧

来自分类Dev

仅在满足特定条件时如何使用$ addFields(聚合)

来自分类Dev

MySQL:选择与聚合函数不同

来自分类Dev

MySQL无法获取聚合查询