2017-03-27 27 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 
相關問題