2017-03-27 4 views
-1

Ich möchte ZÄHLEN, wie viele Datensätze in meiner Datenbank den gleichen Titel, die gleiche User_ID haben und am selben Tag passiert.Ich möchte zählen, wie viele Datensätze in meiner Datenbank die gleichen Werte in 3 Spalten haben

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 

So wäre die Antwort 4, ich brauche nicht die Details nur die Anzahl.

Microsoft SQL Server 2016. Kompatibilität Ebene: SQL Server 2005 (90)

+1

@DanBracuk Dies ist ein Grund zum Downvote, kein Grund zum Schließen. –

+0

Wenn Sie eine Hilfe benötigen, um Ihren Code zu reparieren, dann zeigen Sie bitte diesen Code an. Wenn Sie einen Code schreiben müssen, ist dies kein guter Ort, um danach zu fragen. –

Antwort

3

Wenn ich richtig verstehe, Sie wollen nur zwei Aggregationsebene:

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

vielleicht nur innere Abfrage ist genug? – LONG

+0

@ LANG. . . "Die Antwort wäre 4". –

+0

@GordonLinoff - wissen wir, dass alle Zeitstempel um Mitternacht sind? Wahrscheinlich möchten Sie einen Datumstyp eingeben. – Hogan

1

Hier ist ein Weg, um alle Zeilen zu zählen mit mindestens 1 Duplikat event_date, title und user_id:

select count(*) from (
    select row_number() over (partition by event_date, title, user_id) rn 
    from mytable 
) t where rn = 2 
Verwandte Themen