Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL多行_Mysql_Database_Rows - Fatal编程技术网

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;