我希望在25岁以上的车主中获得最常用的汽车类型(varchar)。我写了一个查询,但它计算了所有类型的名称。 如何补充此mySQL查询以仅计算相同名称的汽车?
SELECT type, COUNT(type)
FROM `car`
INNER JOIN owner
ON car.owner= tulajdonos.id
WHERE 2018 - owner.birth_date >= 25
答案 0 :(得分:1)
您必须对查询的降序进行排序,并仅用LIMIT 1
占据最上面一行。
SELECT type, COUNT(type) AS counter
FROM `car`
INNER JOIN owner
ON car.owner= tulajdonos.id
WHERE 2018 - owner.birth_date >= 25
GROUP BY type
ORDER BY COUNT(type) DESC
LIMIT 1
答案 1 :(得分:0)
如果您想使用一种最常见的类型
size=xl your-class-name
如果您确定没有联系。
此外,您确定年龄的方式也不完美,您可以使用类似的方法:
SELECT top 1 type, COUNT(type)
FROM `car`
INNER JOIN owner
ON car.owner= tulajdonos.id
WHERE 2018 - owner.birth_date >= 25
order by count(type) desc, type
答案 2 :(得分:0)
您可以通过正确地进行日期算术开始。之后,您可能只需要limit
:
SELECT c.type, COUNT(*) AS counter
FROM car c INNER JOIN
owner o
ON c.owner= o.id
WHERE o.birth_date < curdate() - interval 25 year;
ORDER BY counter DESC
LIMIT 1