该表包含 from_id 与 to_id 间的一次电话的时长。
编写 SQL 语句,查询每一对用户(person1 person2)之间的通话次数和通话总时长,其中person1 < person2。
Calls表中保存了每一笔通话信息。包括拨出方、接收方、通话时长。
题目要求:统计每两个用户之间的通话记录汇总。因为A与B和B与A的通话记录统计结果是相同的,因此,题目要求返回的结果中,只返回一种组合即可(即:用户ID较小的放在左边,较大的放在右边)。
也就是说,一条通话记录只会被记录一次。
Calls表通话记录中,拨出方的用户ID有可能较小,接收方的用户ID也有可能较小。那么,我们可以先对通话记录进行标准化:把拨出方和接收方中用户ID较小的那一个放在第一字段,较大的那一个放在第二个字段。这就与题目要求的返回结果相同了,然后再直接使用GROUP BY+COUNT+SUM汇总即可。