首页 > 解决方案 > SQL 语句根据以前的条目返回数字并分组

问题描述

对于具有 userid1、userid2、clicktime 的给定表

我想返回之前我们有一个带有 userid1=userid2 的条目的条目数,反之亦然。整个事情按月分组

它应该算数

userid1      userid2       clicktime
34           67            january
67           34            december

结果应该是这样的: Day Number_of_Matches

12/22/2016 23 12/23/2016 3 12/24/2016 33

标签: sqlsql-server

解决方案


假设您希望任何用户组合都有一行,并且每一行都有 2 个不同的用户 ID:

select case 
when userid1>userid2 then userid1
when userid1<userid2 then userid2 end as userid1, 
case 
when userid1<userid2 then userid1
when userid1>userid2 then userid2 end as userid2, 
clicktime, count(*) from table
group by 1,2,3

如果您希望拥有 2 种组合,只需:

select 
    userid1,userid2,clicktime, count(*)
    from table
    group by 1,2,3

我假设点击时间是一个独特的月份


推荐阅读