2017-03-27 25 views
-1

我想COUNT在我的数据库中有多少记录具有相同的标题,相同的User_ID并且发生在同一天。我想统计我的数据库中有多少记录具有3列中的相同值

Table_01: 
    ------------------------------------------ 
    EVENT_DATE    | Title | User_ID 
    ------------------------------------------ 
    2014-08-28 00:00:00.000 | #0001 | 1111 
    2014-08-28 00:00:00.000 | #0001 | 1113 
    2014-08-28 00:00:00.000 | #0001 | 1113 
    2014-08-30 00:00:00.000 | #0001 | 1111 
    2014-08-03 00:00:00.000 | #0002 | 1111 
    2014-08-28 00:00:00.000 | #0001 | 1111 
    2014-08-15 00:00:00.000 | #0002 | 1111 
    2014-08-28 00:00:00.000 | #0004 | 1112 
    2014-08-30 00:00:00.000 | #0001 | 1111 
    2014-08-02 00:00:00.000 | #0001 | 1111 
    2014-08-28 00:00:00.000 | #0004 | 1112 
    2014-08-01 00:00:00.000 | #0003 | 1111 


------------------------------------------ 
EVENT_DATE    | Title | User_ID 
------------------------------------------ 
2014-08-28 00:00:00.000 | #0001 | 1111 
2014-08-28 00:00:00.000 | #0001 | 1111 

2014-08-28 00:00:00.000 | #0001 | 1113 
2014-08-28 00:00:00.000 | #0001 | 1113 

2014-08-30 00:00:00.000 | #0001 | 1111 
2014-08-30 00:00:00.000 | #0001 | 1111 

2014-08-28 00:00:00.000 | #0004 | 1112 
2014-08-28 00:00:00.000 | #0004 | 1112 

2014-08-03 00:00:00.000 | #0002 | 1111 
2014-08-15 00:00:00.000 | #0002 | 1111 
2014-08-02 00:00:00.000 | #0001 | 1111 
2014-08-01 00:00:00.000 | #0003 | 1111 

所以答案是4,我不需要详细的计数。

的Microsoft SQL Server 2016兼容级别:SQL Server 2005中(90)

+1

@DanBracuk这是downvote的原因,而不是关闭的原因。 –

+0

如果您需要帮助修复您的代码,请显示该代码。如果你需要编写代码,那么这不是一个好问的地方。 –

回答

3

如果我理解正确的话,你只是想聚集的两个层次:

select count(*) 
from (select EVENT_DATE, Title, User_ID, count(*) as cnt 
     from table_01 
     group by EVENT_DATE, Title, User_ID 
    ) t 
where cnt > 1; 
+0

也许只是内部查询就够了? – LONG

+0

@LONG。 。 。 “答案是4”。 –

+0

@GordonLinoff - 我们知道所有的时间戳都是在午夜吗?可能想要投射到日期类型。 – Hogan

1

这里有一个方法与计算所有行至少有1个重复的event_date,title和user_id:

select count(*) from (
    select row_number() over (partition by event_date, title, user_id) rn 
    from mytable 
) t where rn = 2 
相关问题