我希望计算单个用户从另一个用户发送和接收的最大消息数。我不明白如何做到这一点。
Example for 3 messages exchanged:
[1] John(1472) msg Jane
Jane msg John(1472)
[2] John(1472) msg Jane
Jane msg John(1472)
[3] John(1472) msg Jane或
[1] John(1472) msg Jane
Jane msg John(1472)
[2] John(1472) msg Jane
Jane msg John(1472)
[3] John(1472) msg Jane
Jane msg John(1472)或
[1] John(1472) msg Jane
John(1472) msg Jane
John(1472) msg Jane
Jane msg John(1472)
[2] John(1472) msg Jane
John(1472) msg Jane
Jane msg John(1472)
Jane msg John(1472)
[3] John(1472) msg Jane
Jane msg John(1472)以上所有示例将给出这两个用户之间交换的3条消息。我的表结构如下:http://sqlfiddle.com/#!9/f84f17/1
每次用户向另一个用户发送消息时,我们都会在邮箱表中插入两行,其中包含不同的感应器、接收者、所有者和文件夹(收件箱/发送)。
发布于 2016-01-06 12:46:27
若要选择用户与任何其他用户之间交换的最大数量的消息,您可以按对等点分组,按计数排序,并选择第一个结果:
SELECT count(*), if(owner=senderid, recipientid, senderid) as peer FROM mailbox
WHERE owner = 1472
GROUP BY 2
ORDER BY 1 desc
LIMIT 1https://stackoverflow.com/questions/34632338
复制相似问题