2016-03-26 5 views
0

Я хочу выбрать, какая модель автомобиля участвует в большинстве аварий. Я использую следующий запрос, но я получаю синтаксическую ошибку. пожалуйста кто-нибудь сказать мне, что случилось ..Имея с Sub запрос MySql

select car.Model 
    from car 
    join car_accident_involved 
     on car.Car_Registration_ID = car_accident_involved.Car_Registration_ID 
    group by car.Model 
    having MAX(
     select COUNT(Car_Registration_ID) 
     from car_accident_involved 
    ); 
+0

Вы хотите знать, что вызывает синтаксическую ошибку, или что не так с запросом? – Strawberry

+0

Если вам нравится, рассмотрите следующий простой двухэтапный курс действий: 1. Если вы еще этого не сделали, предоставьте правильные инструкции CREATE и INSERT (и/или sqlfiddle), чтобы мы могли легче реплицировать проблему. 2. Если вы еще этого не сделали, укажите желаемый набор результатов, соответствующий информации, представленной на шаге 1. – Strawberry

ответ

1

Вы можете использовать простой суб запрос здесь, например:

select model from car 
where car_registration_id = 
(select car_registration_id 
    from car_accident_involved 
    group by model 
    order by count(car_registration_id) desc 
    limit 1); 
1

HAVING является условием заявление для GROUP BY. У вашего запроса нет никаких условий в
HAVING утверждение, поэтому возникает ошибка. A Для меня нет необходимости в подзапросе. Попробуйте более простой запрос:

SELECT c.model,COUNT(a.car_registration_id) AS Num_of_accidents FROM car c 
INNER JOIN car_accident_involved a ON c.car_registration_id=a.car_registration_id 
GROUP BY c.model ORDER BY Num_of_accidents DESC LIMIT 1;