需要找出为什么我的组计数查询不工作。我正在使用Microsoft SQL Server,并且有2个表我正在尝试加入。
我的查询需要为每种类型的车辆带来交易的数量。查询的输出需要为每种类型的车辆(如ute、hatch、sedan等)提供单独的行。
CREATE TABLE vehicle
(
vid INT PRIMARY KEY,
type VARCHAR(30) NOT NULL,
year SMALLINT NOT NULL,
price DECIMAL(10, 2) NOT NULL,
);
INSERT INTO vehicle
VALUES (1, 'Sedan', 2020, 240)
CREATE TABLE purchase
(
pid INT PRIMARY KEY,
vid INT REFERENCES vehicle(vid),
pdate DATE NOT NULL,
datepickup DATE NOT NULL,
datereturn DATE NOT NULL,
);
INSERT INTO purchase
VALUES (1, 1, '2020-07-12', '2020-08-21', '2020-08-23')
我在每个表中有大约10行信息,只是我还没有写出来。
这是我写的,但是它没有返回每种类型汽车的正确交易数。
SELECT
vehicle.vid,
COUNT(purchase.pid) AS NumberOfTransactions
FROM
purchase
JOIN
vehicle ON vehicle.vid = purchase.pid
GROUP BY
vehicle.type;
任何帮助都会很感激。谢谢。
您的GROUP BY
和SELECT
列不一致。您应该像这样编写查询:
SELECT v.Type, COUNT(*) AS NumPurchases
FROM Purchase p JOIN
Vehicle v
ON v.vID = p.pID
GROUP BY v.Type;
注意表别名的使用,这样查询更容易写和读。
如果这没有产生预期的值,您将需要提供样本数据和期望的结果,以明确数据的真实样子和您的期望。