我想知道如何从不同的结果中获取公共字符串的出现次数(或在我的查询中使用 OR,如下例所示)。
表格示例:
id | name | rank
1 | name1 | 1
2 | name1 | 1
3 | name2 | 1
4 | name3 | 1
5 | name1 | 2
6 | name1 | 2
7 | name3 | 2
现在,我需要计算 rank = 1 和 rank = 2 的出现次数,而不重复计数。
做这样的事情:
SELECT name, COUNT(DISTINCT name)
AS name_num FROM table WHERE rank = 1 GROUP BY name;
结果是
name1 | 1
name2 | 1
name3 | 1
完美,但现在我需要包含一些其他结果(即 rank = 1 或 rank = 2)并从每个名称中获取出现次数,而不重复它。
使用表示例和 rank = 1 OR rank = 2 的查询示例的所需结果应该是:
name1 | 2
name2 | 1
name3 | 2
我将尝试解释我想要的结果:
name1 is present when rank = 1 (+1) and when rank=2 (+1);
name 2 is only present when rank=1
name3 is present when rank = 1 (+1) and when rank=2 (+1);
可能吗?