0
我有4个表格。我试图获得每个汽车品牌的最大价值。有10个品牌。我试图得到哪个车是每个品牌最昂贵的。SQL for MAX for each group
我做的第一件事是把我想要获取信息的所有表分组。 我已经加入了品牌,模型,CLASS和VEH表格。但我不确定如何获得每个组的最大值。
SELECT B.BRAND_NAME, M.MODEL_NAME, C.CLASS_NAME, V.VEH_YEAR, V.VEH_PRICE
FROM ((VEHICLE V INNER JOIN CLASS C ON V.CLASS_ID = C.CLASS_ID)
INNER JOIN MODEL M ON M.MODEL_ID = V.MODEL_ID)
INNER JOIN BRAND B ON B.BRAND_ID = M.BRAND_ID
我想:
SELECT B.BRAND_NAME, M.MODEL_NAME, C.CLASS_NAME, V.VEH_YEAR, V.VEH_PRICE
FROM (
SELECT B.BRAND_NAME, MAX(V.VEH_PRICE)
FROM ((VEHICLE V INNER JOIN CLASS C ON V.CLASS_ID = C.CLASS_ID)
INNER JOIN MODEL M ON M.MODEL_ID = V.MODEL_ID)
INNER JOIN BRAND B ON B.BRAND_ID = M.BRAND_ID
GROUP BY B.BRAND_NAME
);
即时得到:
@ypercube嗨,我尝试了第二份声明,但我得到“加入表达不支持它突出了代码的最后一部分。 “ON(b.BRAND_ID = derived.BRAND_ID AND v.VEH_PRICE = derived.VEH_PRICE );“ – Batman
立即尝试。访问在需要的地方以及不需要括号的地方相当有趣。 –
是的,我删除了on声明括号,它似乎工作。我在那里通过声明顺序完成,希望我可以让它工作。除此之外,这正是我想要完成的。非常感谢你的帮助。 – Batman