我不知道我怎么会得到不同的结果相同的字符串的出现次数(或使用或在我的查询,如下面的例子)。MySQL的 - 摆脱“不同”的查询出现的次数导致
表例如:
id | name | rank
1 | name1 | 1
2 | name1 | 1
3 | name2 | 1
4 | name3 | 1
5 | name1 | 2
6 | name1 | 2
7 | name3 | 2
现在,我需要计数的出现次数为秩= 1和秩= 2,但不重复计数。
做这样的事情:
SELECT name, COUNT(DISTINCT name)
AS name_num FROM table WHERE rank = 1 GROUP BY name;
结果是
name1 | 1
name2 | 1
name3 | 1
完美的,但现在我需要包括一些其他的结果(即等级= 1个或秩= 2),并获得事件从每个名字,而不复制它。
使用表例子,秩= 1或排名查询例如想要的结果= 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);
是有可能吗?
它缺少一个DISTINC。看起来像是有效的。 (我会做出一些测试 - 谢谢你的好意 PS:你能解释我为什么不能当计数(DISTINCT名工作),但它的工作,当计数(DISTINCT排名) – dmartinez
@dmartinez计数(唯一的名字)!?通过结果和计数(Distinct Rank)计算由ditinct名称在组中计算由ditinct排名 –
+1为最佳答案 – Parado