SQL 查询以找出哪个 Shift 生产的柴油发动机最多
SQL Query to find out which Shift produced most diesel engines
问题:哪个班次 ('Shiftnumber') 生产的柴油车 ('engine-type') 最多?
我有table生产历史
CREATE TABLE productionhistory (
ID int AUTO_INCREMENT PRIMARY KEY NOT NULL,
Shiftnumber int NOT NULL,
Carid int NOT NULL);
和table车辆
CREATE TABLE vehicle (
ID int AUTO_INCREMENT PRIMARY KEY NOT NULL,
`engine-type` varchar(6) NOT NULL);
vehicle.ID 是 productionhistory.carid 的外键。
有人可以帮我解决这个问题吗?
您需要将 productionhistory 与 vehicle 结合起来以获得 (Shiftnumber, enginetype) 对。现在您可以简单地使用 WHERE engineType = 'diesel' GROUP BY ... ORDER BY n DESC 来获取该类型大多数生产引擎的顺序。
SELECT Shiftnumber
, COUNT(*) AS n
FROM productionhistory AS ph
JOIN vehicle AS v
ON ph.carid = v.id
AND engineType = 'diesel'
GROUP BY Shiftnumber
ORDER BY n DESC
;
问题:哪个班次 ('Shiftnumber') 生产的柴油车 ('engine-type') 最多?
我有table生产历史
CREATE TABLE productionhistory (
ID int AUTO_INCREMENT PRIMARY KEY NOT NULL,
Shiftnumber int NOT NULL,
Carid int NOT NULL);
和table车辆
CREATE TABLE vehicle (
ID int AUTO_INCREMENT PRIMARY KEY NOT NULL,
`engine-type` varchar(6) NOT NULL);
vehicle.ID 是 productionhistory.carid 的外键。
有人可以帮我解决这个问题吗?
您需要将 productionhistory 与 vehicle 结合起来以获得 (Shiftnumber, enginetype) 对。现在您可以简单地使用 WHERE engineType = 'diesel' GROUP BY ... ORDER BY n DESC 来获取该类型大多数生产引擎的顺序。
SELECT Shiftnumber
, COUNT(*) AS n
FROM productionhistory AS ph
JOIN vehicle AS v
ON ph.carid = v.id
AND engineType = 'diesel'
GROUP BY Shiftnumber
ORDER BY n DESC
;