公司内部短信交流表,存有发件人 id ,接收人 id
例表:
sms_id | sender_id | receiver_id |
1 | 1001 | 1008 |
2 | 1003 | 1009 |
3 | 1001 | 1009 |
4 | 1002 | 1001 |
5 | 1008 | 1001 |
如何得到
每个人联络过多少人
的结果
结果举例:
sender_id | count
1001 | 2
1003 | 1
1002 | 1
1008 | 1
1
qiayue 2016-11-24 09:54:14 +08:00
你这个感觉是题目(作业?)而不是实际需求。
|
2
Jolly23 OP @qiayue 是需求,想写复杂网络的论文,然后自己列了一个单子,标明需要哪些数据,要从系统的 log 表提取数据分析一下,上面这问题就是其中的一组数据
|
3
kxjhlele 2016-11-24 09:58:52 +08:00
count(distinct receiver_id)
group by sender_id |
4
kxjhlele 2016-11-24 10:01:03 +08:00
一个 公司内部短信交流表,我个人感觉算不上复杂网络,要是运营商级别的话,还是有分析的意思。
|
5
zjuhwc 2016-11-24 10:01:34 +08:00 via iPhone
select send_id, count(distinct reciver_id) from table group by send_id
|
6
Jolly23 OP @kxjhlele 非常感谢,实现了。嗯,规模跟运营商没法比,但也有 1.5w 员工和 15w 短信数据了,感觉还是有一定的分析的意义
|
8
ipconfiger 2016-11-24 10:11:51 +08:00
这种玩具量级的基本也就是作业了, 其实现实中根本就不是这么做的......... 😂😂😂😂😂😂😂
|
9
justfindu 2016-11-24 10:11:54 +08:00
其实你算错了 1001 有 3 个联系过的 = = 你考虑过么 1002 给 1001 发短信 也是联系
|
10
wyj12501 2016-11-24 10:26:56 +08:00
select send_id, count(1)
from (select distinct send_id, receive_id from table) group by send_id; 搜到一篇优化文章,可能有用 https://www.oschina.net/translate/use-subqueries-to-count-distinct-50x-faster |