SQL Oracle选择、计数和内部联接

SQL Oracle选择、计数和内部联接,oracle,join,count,Oracle,Join,Count,根据客户在销售表中购买了多辆汽车的时间,创建从客户表中显示customerID、customerFirName和customerZip的查询时出现问题。以下是表格创建: CREATE TABLE CUSTOMERS (customerID INT PRIMARY KEY, customerFirName VARCHAR(20) NOT NULL, customerLasName VARCHAR(20) NOT NULL, customerMiName V

根据客户在销售表中购买了多辆汽车的时间,创建从客户表中显示customerID、customerFirName和customerZip的查询时出现问题。以下是表格创建:

CREATE TABLE CUSTOMERS
(customerID     INT     PRIMARY KEY,
customerFirName     VARCHAR(20) NOT NULL,
customerLasName     VARCHAR(20) NOT NULL,
customerMiName      VARCHAR(1)  NOT NULL,
customerStreet      VARCHAR(40) NOT NULL,
customerState       VARCHAR(15) NOT NULL,
customerCity        VARCHAR(20) NOT NULL,
customerZip     VARCHAR(15) NOT NULL);

CREATE TABLE SALES
(saleID         INT     PRIMARY KEY,
grossSalePrice      DECIMAL(9,2),
vehicleStatus       VARCHAR(10) NOT NULL CHECK (lower(vehicleStatus) IN ('available', 'sold', 'pending')),
saleDate        DATE,
saleMileage     INT,
customerID      INT,
salespersonID       INT,
vehicleVIN      VARCHAR(25),
CONSTRAINT SALES_FK1 FOREIGN KEY (customerID) REFERENCES CUSTOMERS(customerID);
以下是所需的输出:

customerID        customerFirName    customerZip    Number_of_Sales
1                 Bob                12345          2
2                 Jim                94949          3
3                 Tom                99330          4
以下是我尝试过的…我在创建一个SELECT语句时遇到问题,该语句具有内部联接,用于组合CUSTOMERS.customerID字段上的SALES.customerID字段。我哪里做错了?谢谢

SELECT CUSTOMERS.customerFirName, CUSTOMERS.CustomerID, CUSTOMERS.customerZip, COUNT(SALES.customerID)
FROM CUSTOMERS
INNER JOIN SALES ON CUSTOMERS.customerID=SALES.customerID
GROUP BY SALES.customerID
HAVING COUNT(SALES.customerID) > 1;


我猜问题在
groupby
字段中。

SELECT CUSTOMERS.customerFirName, CUSTOMERS.CustomerID, CUSTOMERS.customerZip, 
COUNT(SALES.customerID)
FROM CUSTOMERS
INNER JOIN SALES ON CUSTOMERS.customerID=SALES.customerID
GROUP BY CUSTOMERS.customerFirName, CUSTOMERS.CustomerID, CUSTOMERS.customerZip
HAVING COUNT(SALES.customerID) > 1;

我猜问题在
groupby
字段中。

SELECT CUSTOMERS.customerFirName, CUSTOMERS.CustomerID, CUSTOMERS.customerZip, 
COUNT(SALES.customerID)
FROM CUSTOMERS
INNER JOIN SALES ON CUSTOMERS.customerID=SALES.customerID
GROUP BY CUSTOMERS.customerFirName, CUSTOMERS.CustomerID, CUSTOMERS.customerZip
HAVING COUNT(SALES.customerID) > 1;

可能只是在子选择中进行计数:

select * from
(SELECT CUSTOMERS.customerFirName, CUSTOMERS.CustomerID, CUSTOMERS.customerZip, COUNT(*) num_sales
FROM CUSTOMERS
INNER JOIN SALES ON CUSTOMERS.customerID=SALES.customerID
GROUP BY CUSTOMERS.customerFirName, CUSTOMERS.CustomerID, CUSTOMERS.customerZip)
where num_sales > 1;

可能只是在子选择中进行计数:

select * from
(SELECT CUSTOMERS.customerFirName, CUSTOMERS.CustomerID, CUSTOMERS.customerZip, COUNT(*) num_sales
FROM CUSTOMERS
INNER JOIN SALES ON CUSTOMERS.customerID=SALES.customerID
GROUP BY CUSTOMERS.customerFirName, CUSTOMERS.CustomerID, CUSTOMERS.customerZip)
where num_sales > 1;

!!!!! 哇!我是个傻瓜。真不敢相信我错过了——万分感谢,有时候你所需要的只是有人指出你忽略的错误。我很高兴。我可以帮助你!!!!!!哇!我是个傻瓜。真不敢相信我错过了——万分感谢,有时候你所需要的只是有人指出你忽略的错误。我很高兴。我可以帮助你!