Also lief ich diese kleine Abfrage und ich habe etwas seltsames vor sich.MySQL: AVG-Funktion: Warum gibt die Abfrage einen falschen Wert zurück?
Ich möchte alle Artikel anzeigen, die einen Bestand haben, der größer ist als der durchschnittliche Lagerbestand (wenn das sinnvoll ist ...).
Wenn ich es ausführen, hat eines der Produkte weniger Lager als der berechnete Durchschnitt ... und ich bin mir nicht sicher warum. In diesem Szenario der Rückkehr das Element, das nicht sein sollte, ist: 421
Return Daten:
"sum(quantity_stocked)" "count(product_id)" "avg(quantity_stocked)"
"15885" "18" "882.5000"
"product_id" "quantity_stocked"
"861" "1082"
"591" "1948"
"485" "1402"
"421" "858"
"277" "1920"
"214" "902"
"59" "1021"
Abfragen:
select sum(quantity_stocked), count(product_id), avg(quantity_stocked)
FROM products;
SELECT product_id, quantity_stocked
FROM products
WHERE quantity_stocked > (
SELECT avg(quantity_stocked)
FROM products
GROUP BY product_id
LIMIT 1
);
Rest Code:
CREATE TABLE products
(
product_ID int(10) UNIQUE,
product_name varchar(30) NOT NULL,
quantity_stocked int(5),
product_cost dec(8,2) NOT NULL,
PRIMARY KEY (product_ID)
);
INSERT INTO products VALUES
(452,'Nike SS Pro Top',418, 22.99),
(861,'Nike LunarGlide 7',1082, 74.99),
(453,'Nike LS Pro Top',654, 64.99),
(454,'Nike SS Pro Top',720, 64.99),
(451,'Nike Pro Tank',480, 45.99),
(485,'Nike 5k Run Short',1402, 24.99),
(582,'Nike Fit Capri',750, 29.99),
(591,'Nike Be Fast Tight',1948, 39.99),
(847,'Nike Legend Tee',120, 34.99),
(277,'Nike Miller v-neck',1920, 44.99),
(135,'Adidas Soccer Pant',630, 34.99),
(456,'Adidas SS Breathe Top',754, 19.99),
(457,'Adidas Pro Cleat',626, 44.99),
(214,'Adidas Slide',902, 19.99),
(054,'Underarmor SL Top',854,54.99),
(059,'Undersarmor LS High Neck',1021,54.99),
(574,'Underarmor TR Short',746,24.99),
(421,'Underarmor TR Balance Shoe',858,84.99);
Es ist so erfrischend, eine Frage zum Debuggen zu sehen, die alle Komponenten an Ort und Stelle hat, um es beantwortbar zu machen! – Shadow
Es ist etwas, an dem ich hart gearbeitet habe, um meine Fragen zu lösen! :) Froh, dass es dort ankommt! – Sierra