J'ai une table pleine d'articles et de prix pour ces articles. Je voudrais saisir la somme des 3 articles les plus chers.
Je pensais peut-être que SELECT SUM(items.price) FROM items ORDER BY items.price LIMIT 3
mais cela ne semble pas faire l'affaire. Est-ce possible? Merci!
select sum(price) from (select items.price from items order by items.price desc limit 3) as subt;
LIMIT
affecte le nombre de lignes renvoyées par la requête et SUM n'en renvoie qu'une. Basé sur ce fil vous voudrez peut-être essayer:
SELECT sum(price)
FROM (SELECT price
FROM items
ORDER BY price DESC
LIMIT 3
) AS subquery;
Il suffit d'utiliser une sous-sélection:
select sum(prices) from (SELECT SUM(items.price) FROM items ORDER BY items.price LIMIT 3) as prices
Utilisez une sous-requête ou quelque chose comme ça. Juste une idée, car je n’ai pas testé la requête.
SELECT SUM(items.price) from (select price FROM items ORDER BY items.price LIMIT 3)
Je n'ai pas testé cela et je l'ai juste écrit dans ma mémoire. Vous pouvez essayer quelque chose comme:
SELECT * AS total FROM items ORDER BY price DESC
SELECT SUM(price) FROM total LIMIT 3;
Edit: J'étais lent