为什么命令Sql的输出提到此查询语句的错误消息:
SELECT Distinct SupplierId, max(Price)
FROM Products;
我试图在双列一行条目中提及具有最高价格的供应商ID。 有什么建议或例子可以澄清这个问题吗? 非常感谢。
问题在于
max
是聚合,即组的标量值,而 id
是未分组的项目。您可以通过以下方式实现您想要的:
SELECT SupplierId, max(Price)
FROM Products
GROUP BY SupplierId;
这就是您在查询中创建聚合列的方式,基本上指定您将从记录中获得组,其供应商 ID 对于每个组都是唯一的,并且具有与您拥有的不同供应商 ID 一样多的组,这样就清楚了
SupplierId
适用于您的每个小组,您还可以通过计算其最大值来汇总价格。想象一下当您有 1000 条具有不同供应商 ID 的记录时的情况。如果您必须在不分组的情况下推断该值,那么您将无法这样做,因为可能有很多这样的值。但是,如果你按照我的建议对供应商 ID 进行分组,那么每个组的供应商 ID 就会很清楚。