Ich möchte Ergebnisse kleiner als 3 herausfiltern, aber wenn ich die WHERE-Anweisung hinzufügen, schlägt die Abfrage fehl. Was ist falsch an meiner Anfrage? Ich benutze MySQL Workbench 3.7SQL WHERE filtert meine Ergebnisse nicht
Vielen Dank! Yoni
Ich möchte Ergebnisse kleiner als 3 herausfiltern, aber wenn ich die WHERE-Anweisung hinzufügen, schlägt die Abfrage fehl. Was ist falsch an meiner Anfrage? Ich benutze MySQL Workbench 3.7SQL WHERE filtert meine Ergebnisse nicht
Vielen Dank! Yoni
Need HAVING
nach GROUP BY
nicht WHERE
zu verwenden:
SELECT
c.name, COUNT(DISTINCT s.product_id) AS veggies
FROM
sales AS s
INNER JOIN customers AS c ON c.id = s.customer_id
GROUP BY
s.customer_id
HAVING
veggies > 2
würde der downvoter bitte einen Kommentar hinterlassen –
Die where
sollte having
sein:
SELECT c.name, COUNT(DISTINCT s.product_id) AS veggies
FROM sales s INNER JOIN
customers c
ON c.id = s.customer_id
GROUP BY s.customer_id
HAVING veggies > 2;
Entweder Ihre Abfrage einen Syntaxfehler erzeugt (das heißt, nicht ausgeführt werden) oder es blieb an der GROUP BY
und ignoriert die WHERE
.
Grouping requires knowledge of entire list. There is an order of operations in mysql query. (Klick auf diesen Link wird Sie die Seite, die das beantwortet)
Das wird sich hoffentlich arbeiten,
SELECT c.name, COUNT(DISTINCT s.product_id) AS veggies'
FROM sales AS s
INNER JOIN customers AS c
ON c.id=s.customer_id
WHERE veggies > "2"
GROUP BY s.customer_id
durch diese beiden Linien tauschen.
GROUP BY s.customer_id
WHERE veggies > "2"
GROUP BY immer kommt nach WHERE.
Zusätzlich fehlt hier ein Eröffnungszitat um 2.
WHERE veggies > 2"
Und ein unnötiges einzelnes Anführungszeichen (') am Ende der ersten Zeile.
Abfragen müssen der Syntax entsprechen – Strawberry