SQL Abfrage HIlfe?

... komplette Frage anzeigen

3 Antworten

Ich würde diese Aufgabe so formulieren, glaube aber, dass Deine Formulierung trotzdem richtig ist:

SELECT customer_Id FROM cr_ratings

WHERE customer_Id IN

( SELECT customer_Id FROM cr_ratings

WHERE rating=5)

AND customer_Id NOT IN

(SELECT customer_Id FROM cr_ratings

where rating=1);

Du kannst die Ergebnisse ja mal vergleichen.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Aziztokhi
16.07.2016, 01:31

Juhuuu du bist ein genie, das ist genau was ich brauche!!!! danke vielmals!!! ich bin nocht so vertraut mit  not in und exists ... muss das aber unbedingt lernen.

0

Ich denke du Suchst sowas : 

SELECT Customer_id FROM CR_RATINGS  GROUP BY Customer_id HAVING Rating > 1 AND MAX(Rating) = 5

Es Gruppiert nach Customer_Id und prüft innerhalb der Gruppe ob Rating > 1 ist (Also kein 1) und das Maximum = 5 ist

Antwort bewerten Vielen Dank für Deine Bewertung

Das mindestens 5 Sterne macht ja keinen Sinn: 5 ist das Maximum, also ist das identisch mit genau 5 Sterne haben.

Und ein Eintrag mit mindestens 5 Sternen kann ja niemals 1 Stern haben, also kannst Du Dir das auch sparen.

Oder willst Du alle mit 5 Sternen + alle mit nicht 1 Stern? Dann kannst Du aber gleich nach nicht 1 Stern fragen.

Oder willst Du alle zwischen 1 und 5 Sterne?

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Orsovai
13.07.2016, 15:54

Ah ich glaub ich verstehe, das Rating bezieht sich auf das Produkt und Du willst alles customers, die mindestens einem Produkt 5 Sterne gegeben haben, oder?

0

Was möchtest Du wissen?