Holen Sie sich alle unterschiedlichen Benutzer - MySql

ck

Ich habe eine Tabelle mit dem folgenden Typ und Informationen.

product_id | user_id | product | date_opened
1          |   10    |   shoes |  2016-04-01
2          |   26    |   shoes |  2016-04-01
3          |   10    |   watch |  2016-04-01
4          |   23    |   shoes |  2016-04-01
5          |   10    |   shoes |  2016-01-01
6          |   13    |   watch |  2016-01-01
7          |   14    |   shoes |  2015-11-02
8          |   10    | slippers|  2015-11-02
9          |   10    |   shoes |  2015-11-02
10         |   15    |   watch |  2015-11-02
11         |   19    |   watch |  2015-09-03
12         |   19    |   watch |  2015-03-02
13         |   19    |   shoes |  2015-01-03

Benutzer können Produkte kaufen, wenn es geöffnet ist. date_openist der Datumszyklus. Benutzer können so viele Produkte kaufen, wie er möchte. Beispiel ist user_id 10 , Benutzer 10 hat 2 Produkte im Zyklus 2016-04-01. Ein Produkt am 01.01.2016, zwei am 02.11.2015.

Jetzt möchte ich alle (unterschiedlichen) Benutzer-IDs abrufen , die an allen vorherigen 3 Zyklusdaten (01.04.2016, 01.01.2016 und 02.11.2015) aktiv sind / Produkte haben .

Beachten Sie, dass ein Benutzer viele Produkte in einem Zyklus haben kann.

Zusätzlich: Aktiv - sollte nacheinander Produkte in 3 Sätzen datesund ohne Überspringen haben. Daher sollte es allen Benutzern mit Produkten das Datum 2016-04-01 und 2016-01-01 und 2015-11-02 anzeigen. Kein Benutzer mit Produkten nur in 1 oder 2 Daten.

Ein weiteres Problem hier: Beispiel: Ich habe Benutzer mit unterschiedlichen Daten (2000-04-05, 2001-09-03, 2006-09-01, 2015-11-02 usw.). Ich möchte nur hierher kommen, sind alle Benutzer mit Datumsangaben ('2016-04-01', '2016-01-01', '2015-11-02').

Samuel Renold

Mit dieser SQL erhalten Sie die verschiedenen Benutzer, die Produkte an allen vorherigen drei Zyklusdaten haben:

SELECT USER_ID
FROM   YOUR_TABLE OUTER_TABLE
WHERE  3 = (SELECT COUNT(DISTINCT DATE_OPENED)
            FROM   YOUR_TABLE INNER_TABLE
            WHERE  DATE_OPENED IN ('2016-04-01', '2016-01-01', '2015-11-02')
            AND    OUTER_TABLE.USER_ID = INNER_TABLE.USER_ID);

Die Anweisung kann schneller (ungetestet) sein, wenn sie wie folgt umgeschrieben wird:

SELECT DISTINCT USER_ID
FROM   YOUR_TABLE OUTER_TABLE
WHERE EXISTS (SELECT 1
              FROM   YOUR_TABLE INNER_TABLE
              WHERE  OUTER_TABLE.USER_ID = INNER_TABLE.USER_ID
              WHERE  DATE_OPENED = '2016-04-01')
AND EXISTS   (SELECT 1
              FROM   YOUR_TABLE INNER_TABLE
              WHERE  OUTER_TABLE.USER_ID = INNER_TABLE.USER_ID
              WHERE  DATE_OPENED = '2016-01-01')
AND EXISTS   (SELECT 1
              FROM   YOUR_TABLE INNER_TABLE
              WHERE  OUTER_TABLE.USER_ID = INNER_TABLE.USER_ID
              WHERE  DATE_OPENED = '2015-11-02');

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

Holen Sie sich alle unterschiedlichen Benutzer durch Mongodb-Aggregation

Django Holen Sie sich alle Benutzer

MS Graph - Holen Sie sich alle Benutzer

Holen Sie sich alle Benutzer in Django

MySQL-Abfrage; Holen Sie sich alle Threads, die alle angegebenen Benutzer haben

Holen Sie sich mit LINQ alle möglichen unterschiedlichen Tripel

Holen Sie sich alle Beiträge und posten Sie den Benutzer mochte MySQL

Holen Sie sich alle Kinder in MySql

SQL: Holen Sie sich alle Benutzer in viele bestimmte Gruppen

Holen Sie sich alle Benutzer mit einem bestimmten Manager

Holen Sie sich alle Benutzer mit all ihren Bildern

Django: Holen Sie sich alle Objekte von einem bestimmten Benutzer

Holen Sie sich alle Benutzer mit LEFT JOIN

Holen Sie sich alle Benutzer von Microsoft Graph

Keycloak - Holen Sie sich alle Benutzer nach Client

Holen Sie sich mehrere Benutzer

PHP mysql - Holen Sie sich den entsprechenden Benutzer mit Beitrag

Holen Sie sich die Benutzer-ID über mysql

Holen Sie sich alle Benutzer außer dem aktuell angemeldeten Benutzer in Laravel eloquent

Holen Sie sich alle Benutzer, denen ein bestimmter Twitter-Benutzer folgt

Holen Sie sich alle Benutzer-GDs der Benutzer, denen die Person nicht folgt

Holen Sie sich alle Benutzer, die nicht mit dem Login-Benutzer befreundet sind

Holen Sie sich alle unterschiedlichen Werte für ein bestimmtes Feld in der Elasticsearch mit Federdaten

Holen Sie sich alle booleschen Vergleiche von Vektoren mit unterschiedlichen Längen in R

Laravel: Holen Sie sich alle Projekte und prüfen Sie, ob sie dem Benutzer gefallen haben

Holen Sie sich alle Chromfenster

Holen Sie sich alle Funktionen

Holen Sie sich ALLE Eigenschaftsnamen

Holen Sie sich alle Modelltypen

TOP Liste

  1. 1

    So verschieben Sie ein Bild in Flutter/Dart mit einem Draggable

  2. 2

    Unity Build-Fehler: Der Name 'EditorUtility' ist im aktuellen Kontext nicht vorhanden

  3. 3

    TypeAhead.js zeigt keine Ausgangsschienen an?

  4. 4

    Deklarieren einer nicht initialisierten Variablen in der Klassendefinition in Python

  5. 5

    Wie kann ich eine verschachtelte Schleife mit lapply in R ersetzen?

  6. 6

    Interpolieren Sie mit Python die 2D-Matrix entlang der Spalten

  7. 7

    spring-data-jpa: ORA-01795: Die maximale Anzahl von Ausdrücken in einer Liste beträgt 1000

  8. 8

    Warum funktioniert Phantomjs nicht mit dieser Site?

  9. 9

    numpy: Berechnen Sie die Ableitung der Softmax-Funktion

  10. 10

    Wie vermeide ich, dass die gesamte App neu geladen wird, wenn Nav.Link von React-Bootstrap verwendet wird?

  11. 11

    MongoDB eingebettetes Dokument unterscheiden und filtern

  12. 12

    Warum funktioniert das Umgebungslicht in diesem Beispiel nicht?

  13. 13

    Wie aktualisiere ich ein Feld in einer Raumdatenbank mit einem Repository und einem Ansichtsmodell?

  14. 14

    Python gibt einen Fehler aus, dass eine Datei nicht vorhanden ist, wenn dies eindeutig der Fall ist

  15. 15

    Aktualisieren des Werts im Json-Objekt in Python

  16. 16

    Wie verwende ich Format-Table ohne Abschneiden von Werten?

  17. 17

    Kivy: Machen Sie Scatter gleich groß wie das untergeordnete Etikett oder Bild

  18. 18

    So berechnen Sie die Verfügbarkeit von Anwendungen (SLA)

  19. 19

    So vergleichen Sie Werte in verschiedenen Objekten jq

  20. 20

    Teilen Sie die Zeichenfolge durch (') und Leerzeichen, aber lassen Sie alle Leerzeichen zwischen zwei aufeinander folgenden (')

  21. 21

    Überprüfen Sie, ob der ausgewählte Wert 'YES' ist, wenn ja, aktivieren Sie ein Steuerelement mit Javascript

heißlabel

Archiv