SQLite wählen Sie alle Datensätze aus, für die Zahl ist größer als 1

Dies ist mein schema:

create table events(
 event_type integer not null,
 value integer not null,
 time timestamp not null,
 unique (event_type ,time)
);

insert into events values
(2,   5,  '2015-05-09 12:42:00'),
(4, -42,  '2015-05-09 13:19:57'),
(2,   2,  '2015-05-09 14:48:39'),
(2,   7,  '2015-05-09 13:54:39'),
(3,  16,  '2015-05-09 13:19:57'),
(3,  20,  '2015-05-09 15:01:09')   

Möchte ich alle Datensätze anzuzeigen, für die event_type registriert worden, mehr als einmal. Wie Sie sehen können in der schema event_type 2 and 3 ist aufgetreten, mehr als einmal. Im folgenden ist die Abfrage, die ich verwendet habe, die Auswahl von nur einem Datensatz für event_type 2 and 3:

select event_type, value, time from events
group by event_type
having count(event_type) > 1;

Ich würde gerne sehen, die Abfrage würde alle Datensätze anzuzeigen, die mit event_type 2 and 3. Vielen Dank im Voraus für alle Hilfe.

InformationsquelleAutor Santosh | 2016-04-12



One Reply
  1. 5
    select e.event_type, e.value, e.time
      from events e
      join ( select event_type 
               from events
              group by event_type
             having count(*) > 1 ) b
        on e.event_type = b.event_type;

    Für mich gibt:

    2|5|2015-05-09 12:42:00
    2|7|2015-05-09 13:54:39
    2|2|2015-05-09 14:48:39
    3|16|2015-05-09 13:19:57
    3|20|2015-05-09 15:01:09

    Referenz: Zeigen Sie alle doppelten Zeilen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.