MySQL计数一列的唯一性,而另一列在分组依据中具有单个值

乔恩·罗宾逊

请参阅下表。我想对不同的访问者(visitor_id)进行计数,并按组(group_id)进行分组-但仅计算那些始终'declined'为该访问者带来结果的访问者。

就像是

SELECT group_id, COUNT(DISTINCT visitor_id) AS always_declines
FROM customer_actions 
WHERE outcome='declined' [[AND HAS NEVER BEEN IN ('purchased')]]
GROUP BY group_id;

这是我的桌子的简化版:

SELECT * FROM customer_actions;
+----+------------+-----------+----------+
| id | visitor_id | outcome   | group_id |
+----+------------+-----------+----------+
|  1 |          5 | purchased |        1 |
|  2 |          5 | purchased |        1 |
|  3 |          6 | purchased |        1 |
|  4 |          7 | declined  |        1 |
|  5 |          6 | declined  |        1 |
|  6 |          7 | purchased |        1 |
|  7 |          8 | declined  |        1 |
|  8 |          8 | declined  |        1 |
+----+------------+-----------+----------+
8 rows in set (0.00 sec)

因此,基本上,如果结果奏效,我正在寻找返回的第一行和唯一行(在这种情况下):

group_id = 1

always_declines = 1(对应于仅拒绝访问的访客8)

戈登·利诺夫(Gordon Linoff)

解决此问题的一种方法是两个聚合。首先,按组和访问者进行汇总,以找到合适的访问者。然后计算剩余的行:

SELECT group_id, count(*) AS always_declines
FROM (SELECT group_id, visitor_id
      FROM customer_actions 
      GROUP BY group_id, visitor_id
      HAVING SUM(outcome <> 'declined') = 0
     ) gv
GROUP BY group_id;

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在pandas中,有没有一种方法可以对另一列进行分组,然后对另一列具有指定值的地方进行唯一计数?

一列中的值的平均值,另一列中的唯一值

Django在另一列中“分组依据”之后的一列的总和值

SQL分组依据:选择另一列具有其最小值/最大值的值

Pyspark,按一列中的唯一值对另一列中的特定值进行分组

按另一列值分组并计数

MySQL:检查一列是否具有基于另一列的值

根据另一列中的唯一值汇总一列中的值

有没有一种方法可以过滤和返回一列的唯一性,而另一列的条件的结果呢?

根据另一列的唯一性获取1列的pandas df中的所有值

我可以在按R中的另一列分组时列出一列的唯一值吗?

熊猫在分组依据的一列中的两个值之间计数

在pyspark中分组后如何从列中取出唯一值并创建具有某些条件的另一列

计算一列在另一列中是否具有特定值

获取列表的所有行,其中一列具有唯一性

根据另一列中的重复值过滤一列中的唯一值

在Yii中,您如何针对表格中的另一列验证唯一性?

如何根据另一列 SQL 中的值创建具有计数值的新列

删除另一列中具有多个唯一值的组

改进对在另一列中具有特定值的不同值进行计数的查询

列出按另一列分组的唯一值

如何根据另一列中的唯一值对一列中的值进行分组?

R获取具有相同但较小的其他列值的唯一列值的计数

如何计数,一列中的值在另一列中具有共同值的频率

MySQL 查询一列中具有相同值而另一列中具有不同值的行

基于另一列的一列中唯一值的计数

如何计算具有唯一性的字符串并将它们输入到 R 的另一列中

在 R 中,指示另一列的每个 ID 是否具有多个唯一值

通过对另一列中的值进行分组,将计数分配给另一列中的唯一值