MySQL多行
我正在学习数据库,我遇到了一个问题,我想有人给我解释一下。 我有一张桌子MySQL多行,mysql,database,rows,Mysql,Database,Rows,我正在学习数据库,我遇到了一个问题,我想有人给我解释一下。 我有一张桌子 car | car_id | car_type ________________________________ bmw | 1 | <bmwcartype1> bmw | 1 | <bmwcartype2> bmw | 1 | <bmwcartype3> bmw | 1 | <bmwcartype4&
car | car_id | car_type
________________________________
bmw | 1 | <bmwcartype1>
bmw | 1 | <bmwcartype2>
bmw | 1 | <bmwcartype3>
bmw | 1 | <bmwcartype4>
mercedes| 2 | <mercedescartype1>
mercedes| 2 | <mercedescartype2>
mercedes| 2 | <mercedescartype3>
lexus | 3 | <lexuscartype1>
lexus | 3 | <lexuscartype2>
lexus | 3 | <lexuscartype3>
lexus | 3 | <lexuscartype4>
lexus | 3 | <lexuscartype5>
我希望下面的行是:
car | number_of_cars
bmw | 4
mercedes | 3
lexus | 5
我如何才能做到这一点?您有一个返回一行的聚合查询。请注意,此查询在MySQL中工作,但在大多数数据库中都会失败。列
car
不在分组依据中。即使您只选择一个值,SQL引擎通常不允许这样做(MySQL是一个例外)
您需要的查询是:
SELECT car, COUNT(car) AS number_of_cars
FROM cars
group by car;
请注意,car
同时出现在select
和groupby
中。虽然您可以在组中设置汽车id
。这是糟糕的形式。尽量确保select
中未聚合的列始终位于分组依据中,至少在您真正了解SQL的使用方法之前是这样的。不要使用where
子句,而是添加汽车分组
@GordonLinoff这正是我要找的,Gordon。你能把你的答案贴出来吗?这样我就可以把它标记为已解决并给你打分了?
SELECT car, COUNT(car) AS number_of_cars
FROM cars
group by car;