【发布时间】:2018-06-27 21:59:45
【问题描述】:
通过 NOVA Oracle DB 使用 SQL。需要知道如何从多个表中查询并根据最高值排序来排列结果。下面是几行代码来反映这三个表:
INSERT INTO VEHICLES
(vehicleVIN,vehicleType,vehicleMake,vehicleModel,vehicleWhereFrom,vehicleWholesaleCost,vehicleTradeID)
VALUES
('147258HHE91K3RT','compact','chevrolet','spark','Maryland',20583.00,NULL);
INSERT INTO VEHICLES
(vehicleVIN,vehicleType,vehicleMake,vehicleModel,vehicleWhereFrom,vehicleWholesaleCost,vehicleTradeID)
VALUES
('789456ERT0923RFB6','Midsize','ford','Taurus','washington, d.c.',25897.22,1);
INSERT INTO VEHICLES
(vehicleVIN,vehicleType,vehicleMake,vehicleModel,vehicleWhereFrom,vehicleWholesaleCost,vehicleTradeID)
VALUES
('1234567890QWERTYUIOP','fullsize','Lincoln','towncar','Virginia',44222.10,NULL);
与
INSERT INTO SALES
(saleID,grossSalePrice,vehicleStatus,saleDate,saleMileage,customerID,salespersonID,vehicleVIN)
VALUES
(1,25987.28,'sold',date '2012-10-15',10,1,1,'147258HHE91K3RT');
INSERT INTO SALES
(saleID,grossSalePrice,vehicleStatus,saleDate,saleMileage,customerID,salespersonID,vehicleVIN)
VALUES
(2,29999.99,'sold',date '2012-10-17',50087,2,2,'789456ERT0923RFB6');
INSERT INTO SALES
(saleID,grossSalePrice,vehicleStatus,saleDate,saleMileage,customerID,salespersonID,vehicleVIN)
VALUES
(3,47490.88,'sold',date '2012-11-05',30,3,3,'1234567890QWERTYUIOP');
与
INSERT INTO CUSTOMERS
(customerID,customerFirName,customerLasName,customerMiName,customerStreet,customerState,customerCity,customerZip)
VALUES
(1,'Regorna','Trasper','J','11111 Address Way','Maryland','Hollywood','20636');
INSERT INTO CUSTOMERS
(customerID,customerFirName,customerLasName,customerMiName,customerStreet,customerState,customerCity,customerZip)
VALUES
(2,'Bob','Seagram','A','22222 Seagram Lane','Texas','Houston','77001');
INSERT INTO CUSTOMERS
(customerID,customerFirName,customerLasName,customerMiName,customerStreet,customerState,customerCity,customerZip)
VALUES
(3,'Sally','Anderson','P','33333 Pheonix Drive','Arizona','Pheonix','85001');
显然还有其他表在这里发挥作用(销售人员等),但是这些是查询所需的唯一表。我要提取的查询需要显示每个型号的总销售额,按最高值排序,以及每个邮政编码的总销售额,按最高值排序。一个示例(使用上面提供的数据)看起来与此类似:
MODEL NUMBER of SALES ZIP CODE NUMBER OF SALES
spark 1 20636 1
Taurus 1 77001 1
towncar 1 85001 1
结果需要根据销售数量按最高值排序。我也在尝试通过单个 SELECT 查询来完成此操作。
我尝试了一些想法,但还没有找到任何能打出本垒打的东西。感谢您的帮助!
【问题讨论】:
-
您可以发布您尝试过的内容吗?
-
您是在问如何加入表格吗?
-
将发布我今晚的内容。我当前的机器上没有包含所有试用代码的“工作表”。
-
我不太确定我是否在问如何加入表格。我以前做过内部联接,但从来没有使用三个表,而两列从同一字段中提取数据(例如,vehicleModel 和 customerZip 正在根据销售总数提取数据)。我的想法是,我需要首先计算总销售额,然后以某种方式将其计算到一个包含vehicleModel 和customerZip 字段的连接表中,按最高销售额排序。我只是不知道如何做到这一点,尤其是在将其保留在单个 SELECT 命令中时。
-
每个型号的总计数与每个邮政编码的总计数不同。您正在显示包含模型和邮政编码的结果行,但是如果您为模型选择总计,则可能涉及多个邮政编码,如果您为邮政编码选择总计,则可能涉及多个模型。因此,您的描述与示例结果不符。请仔细考虑一下,告诉我们您真正追求的是什么。