我有这个表可以访问,我正在尝试进行计数和分组,但出现错误。
我要做的是按来源对 2008 年之前制造的具有 AC 的汽车数量进行分组。
我试过这个:
SELECT SOURCE_ID, COUNT (SOURCE_ID) AS VEHICLES_WITH_AC
FROM VEHICLE
WHERE VEH_AC = 'Y'
GROUP BY SOURCE_ID, VEH_AC, VEH_YEAR
HAVING VEH_YEAR <'2008';
但我得到:
SELECT SOURCE_ID, COUNT (*) AS VEHICLES_WITH_AC
FROM VEHICLE
WHERE VEH_AC = 'Y' AND VEH_YEAR < '2008'
GROUP BY SOURCE_ID;
1)您显然需要按 source_id 进行总计,而不需要其他任何内容,因此您无需按其他任何内容进行分组。
2)您对 VEH_YEAR 的条件应该放在 where 子句中,否则所有 veh_year 行将在聚合后被选中并丢弃。
尝试删除;
afterWHERE
子句。参考