在日期部分上使用 MIN 且 Group BY 不起作用,会返回不同的日期
-
21-08-2019 - |
题
任何人都可以帮助聚合函数..最小值
我有一个汽车表,我想返回具有相同汽车但不同年份和价格的表的最低销售价格和最低年份...
基本上,如果我从组中删除注册(包含年份)并选择查询有效,但如果我将其保留,那么我会返回 3 辆车,它们的型号、制造商等完全相同,但年份不同。
但我使用的是 MIN,所以它应该返回 1 辆汽车,年份为 2006 年(3 辆汽车之间的最小年份)
MIN(SalePrice) 工作正常..它的注册器不起作用..
有任何想法吗?
选择最小的(datePart(年份,[注册]))作为年度注册,最小(Saleprice),模型,由[车辆]组成的datePart(年度,[注册]),模型,制造
解决方案
如果我理解正确的,你在找什么,你应该查询:
SELECT Model, Make, MIN(datepart(year,[Registration])) AS YearRegistered, MIN(SalePrice)
FROM [VehicleSales]
GROUP BY Model, Make
希望它能帮助。
其他提示
Turro 答案将返回最低注册年份和(型号、品牌)的最低价格,但这并不意味着最低价格将针对年份最低的汽车。这是你需要的吗?
或者,您需要其中之一:
年份最低的汽车之间的最低价格
价格最低的汽车之间的最低年份
-- 已编辑 ---
您的查询是正确的,但我想找到明年会更便宜的汽车品牌/型号;)
这就是我发表评论的原因。想象一下接下来的情况
Porshe 911 2004 2000
Porshe 911 2004 3000
Porshe 911 2005 1000
Porshe 911 2005 5000
你得到的结果并不能真正告诉你这辆车是否会根据年份变得更便宜。
Porshe 911 2004 1000
我不知道至少在不与前一年进行比较的情况下,你如何根据一排来判断明年的汽车是否会便宜。
附:我想以标价购买上述汽车中的一辆:D
你得到你要求为:汽车被放入不同的组,只要他们的模型,制作或一年不同的是,和(最小,即只),年最低的价格为每个组是返回。
为什么要使用GROUP BY?
您有关于查询正确的,但我想找到汽车品牌/型号是越来越便宜了明年;)
您会发现每年最廉价(或平均)品牌/型号,并从前年最便宜(或平均)相比(同一品牌/型号)。
然后你就可以看到哪些人越来越便宜,明年(我想大多数)