GROUP BY und Zählt nicht die erwarteten Ergebnisse

Ich mache einige SQL-übungen, aber ich bin stecken in der, die ich beschreiben werde.

Gibt es eine Tabelle namens Produkt, das auf 3 Säulen: maker, Modell und Typ.

Dies ist das Ergebnis select * from product

GROUP BY und Zählt nicht die erwarteten Ergebnisse

Der übung, sagt dieser:
Finden Sie heraus, Entscheidungsträger, die produzieren nur die Modelle des selben Typs und der Anzahl von Modellen, die 1 überschreitet.
Ableiten: maker geben.

Die richtige Abfrage zurückgeben soll diese:

GROUP BY und Zählt nicht die erwarteten Ergebnisse

Mein Ansatz war zuerst, die Macher nur eine Art von Produkt und schließen anschließend die Entscheidungsträger, die haben nur ein Modell. Zu tun, dass ich die folgende Abfrage, und es gibt das richtige Ergebnis, außer der Tatsache, dass ich nur Schaffe, zur Anzeige der Hersteller, aber nicht der Typ und die übung fordert für beide.

Dies ist meine Abfrage:

SELECT
DISTINCT maker
FROM product
GROUP BY maker
HAVING COUNT(distinct type) = 1 
AND
COUNT(model)> 1

Und es gibt diese:

GROUP BY und Zählt nicht die erwarteten Ergebnisse

dann, wenn ich versuche, die Anzeige die Art, wie auch von dies zu tun:

SELECT
DISTINCT maker,type
FROM product
GROUP BY maker,type
HAVING COUNT(distinct type) = 1 
AND
COUNT(model)> 1

dies ist, was ich bekomme:

GROUP BY und Zählt nicht die erwarteten Ergebnisse

Haben Sie eine Idee, warum dies nicht wie erwartet funktioniert? Was würden Sie tun, um dieses problem zu lösen? Ich hab schon versucht das zu lösen, das seit über 3 Stunden ohne Erfolg. 🙁 Helft mir bitte.

  • die Anzahl der übung ist, dass?
  • Es ist die Aufgabe 14
  • Bonus-Tipp: verwenden Sie niemals DISTINCT und GROUP BY zusammen in der gleichen " Ebene AUSWÄHLEN. Es sollte nie notwendig sein (DISTINCT ist eigentlich nur eine vereinfachte/reduzierte form von GROUP BY), aber es ist oft verwirrend und hat das Potenzial für unerwartete und inkonsistente Ergebnisse. (Ich glaube nicht, dass dies das problem hier aber.)
  • oh, ich habe nicht abgeschlossen, noch, also werde ich nur meine Augen schließen und aufhören, verstehen, Antworten
  • Vielen Dank für die Beratung.
  • Ich habe alles getan, von 1 bis 25, aber ich übersprang die 14, weil ich gearbeitet hatten, war es für fast zwei Stunden und kamen dann zurück haha.

Schreibe einen Kommentar