1
我一直在掙扎,真的很感激一些幫助:如何總結實例的總數爲特定的獨特價值
我有兩個表車和騎
create table cars
(cars_ID Int (10),
manuf varchar (30),
model varchar (30));
create table rides
(ride_ID Int (10),
cars_ID varchar (30),
ride_dest varchar (30));
insert into cars (cars_ID, manuf, model) values (1, 'Honda', 'CRV');
insert into cars (cars_ID, manuf, model) values (2, 'Ford', 'Fusion');
insert into cars (cars_ID, manuf, model) values (3, 'Toyota', 'Corolla');
insert into cars (cars_ID, manuf, model) values (4, 'Toyota', 'Camry');
insert into cars (cars_ID, manuf, model) values (5, 'Ford', 'Fusion');
insert into cars (cars_ID, manuf, model) values (6, 'Ford', 'Fusion');
insert into cars (cars_ID, manuf, model) values (7, 'Ford', 'Fusion');
insert into cars (cars_ID, manuf, model) values (8, 'Ford', 'Fusion');
insert into cars (cars_ID, manuf, model) values (9, 'Ford', 'Fusion');
insert into rides (ride_ID, cars_ID, ride_dest) values (1, 3, 'Boston');
insert into rides (ride_ID, cars_ID, ride_dest) values (2, 5, 'New York');
insert into rides (ride_ID, cars_ID, ride_dest) values (3, 5, 'Washington DC');
insert into rides (ride_ID, cars_ID, ride_dest) values (4, 1, 'California');
insert into rides (ride_ID, cars_ID, ride_dest) values (5, 2, 'Dallas');
insert into rides (ride_ID, cars_ID, ride_dest) values (6, 5, 'Canada');
insert into rides (ride_ID, cars_ID, ride_dest) values (7, 5, 'Canada');
insert into rides (ride_ID, cars_ID, ride_dest) values (8, 1, 'Canada');
insert into rides (ride_ID, cars_ID, ride_dest) values (9, 5, 'Canada');
insert into rides (ride_ID, cars_ID, ride_dest) values (10, 3, 'Canada');
輸出,用於汽車:select * from cars;
cars_ID-manuf-model
1-Honda-CRV
2-Ford-Fusion
3-Toyota-Corolla
4-Toyota-Camry
5-Ford-Fusion
6-Ford-Fusion
7-Ford-Fusion
8-Ford-Fusion
9-Ford-Fusion
輸出兜風:select * from rides;
ride_ID-cars_ID-ride_dest
1-3-Boston
2-5-New York
3-5-Washington
4-1-California
5-2-Dallas
6-5-Canada
7-6-Canada
8-7-Canada
9-8-Canada
10-9-Canada
我想計算每種車型的乘車次數(car_manuf和car_model的組合)輸出應該顯示每個carType的乘車數量總和,並且應該按照從最多到最少的乘數排序。
輸出應該是:
CarType-NumberofRides
Ford-Fusion - 8
Toyota-Corolla - 1
Honda-CRV - 1
Toyota-Camry - 0
mycode的:沒有GROUP BY
SELECT CONCAT(c.manuf, '-', c.model) AS 'CarType',
(select count(*) from rides r where r.cars_ID = c.cars_ID) AS 'NumberOfRides'
from cars c
order by NumberofRides ASC;
MyOutput中:沒有GROUP BY
CarType-NumberOfRides
Toyota-Camry - 0
Toyota-Corolla - 1
Ford-Fusion - 1
Honda-CRV - 1
mycode的:與GROUP BY
SELECT CONCAT(c.manuf, '-', c.model) AS 'CarType',
(select count(*) from rides r where r.cars_ID = c.cars_ID) AS 'NumberOfRides'
from cars c
GROUP BY CarType
order by NumberofRides ASC;
MyOutput中:沒有GROUP BY
CarType-NumberOfRides
Toyota-Camry - 0
Toyota-Corolla - 1
Ford-Fusion - 1
Ford-Fusion - 1
Ford-Fusion - 1
Honda-CRV - 1
Ford-Fusion - 1
Ford-Fusion - 1
Ford-Fusion - 3
這不是我要找的輸出。相反,所有的CarType都應該顯示遊樂設施的總數量。
正確的輸出是:
CarType-NumberofRides
Ford-Fusion - 8
Toyota-Corolla - 1
Honda-CRV - 1
Toyota-Camry - 0
我怎樣才能得到正確的輸出?我是否必須使用SUM,如果是的話,它將如何放置?
Barmar - 這對我來說是一次很棒的學習經歷。非常感謝你的幫助。你一直很有幫助。感謝您使用LEFT JOIN的解釋。 – IronBat