我有一张这样的 table ,说是tableA。我需要计算每个唯一的“源”列有多少个“目标”列的唯一值。我如何通过选择计数来做到这一点?
Source Target
10000 1026
10000 1027
10000 1147
10000 2308
10000 2475
10000 3551
10000 4193
10000 4792
10000 5139
10000 5925
10000 7157
10000 7249
10000 8517
1019 5925
1021 5925
10235 6237
1026 1019
1026 1021
1026 5925
1027 1019
1027 1021
1027 5925
那么预期的结果将是:
UniqSource No_UniqTarget
10000 13
1019 1
1021 1
10235 1
1026 3
1027 3
我的(糟糕的)解决方案是获得列源的唯一性和列目标的唯一性,但仍然没有满足期望。
select count(distinct(Target)) from tableA
where Source='10000'
对于这个简单的代码,我可以找到每个唯一源的结果,但如何自动生成上面的预期结果?
最佳答案
试试这个:
SELECT Source AS UniqSource, COUNT(DISTINCT(Target)) AS No_UniqTarget
FROM tableA
GROUP BY UniqSource;
COUNT(DISTINCT(Target))
也可以写成 COUNT(DISTINCT Target)
关于mysql - 如何计算与 MySQL 中另一列中的特定行关联的唯一值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56286527/