我有一个mysql表,其中包含与其订单相关的项目.
CREATE DATABASE IF NOT EXISTS `sqltest`;
USE `sqltest`;
DROP TABLE IF EXISTS `testdata`;
CREATE TABLE `testdata` (
`orderID` varchar(10) DEFAULT NULL,
`itemID` varchar(10) DEFAULT NULL,
`qtyOrdered` int(10) DEFAULT NULL,
`sellingPrice` decimal(10,2) DEFAULT NULL
)
INSERT INTO `testdata`(`orderID`,`itemID`,`qtyOrdered`,`sellingPrice`)
values ('1','a',1,'7.00'),('1','b',2,'8.00'),('1','c',3,'3.00'),('2','a',1,'7.00'),('2','c',4,'3.00');
Run Code Online (Sandbox Code Playgroud)
预期结果:
A =(1 + 1)2
B = 2
C =(2 + 4)6 < - 最受欢迎
它应该是相当紧张的前进,但我是SQL的新手,我无法解决这个问题:S
解决方案需要是mysql和/或php.
我想每个商品ID都需要某种临时的tally变量,但是看起来它可能会因太多商品而变得混乱.
(感谢nuqqsa)
SELECT itemID, SUM(qtyOrdered) AS total FROM testdata GROUP BY itemID ORDER BY total DESC LIMIT 1;
Run Code Online (Sandbox Code Playgroud)
这个怎么样:
SELECT itemID, SUM(qtyOrdered) AS total FROM testdata GROUP BY itemID ORDER BY total DESC;
Run Code Online (Sandbox Code Playgroud)