如何通过access sql选择列而不将其包含在组中

如何通过access sql选择列而不将其包含在组中,sql,ms-access-2010,Sql,Ms Access 2010,我的示例sql查询 SELECT EID,p,p1,p2,p3 FROM table 1 GROUP BY EID; 给定的错误不是聚合函数的一部分。我只想通过EID而不是所有其他p、p1、p2、p3进行分组。如何在sql查询中指定该列。在大多数sql方言中,如果列不在group by子句中,则必须指定所需的列。例如,可能需要最小值: SELECT EID, min(p), min(p1), min(p2), min(p3) FROM table 1 GROUP BY EID; 或者,如果

我的示例sql查询

 SELECT EID,p,p1,p2,p3 FROM table 1 GROUP BY EID;

给定的错误不是聚合函数的一部分。我只想通过EID而不是所有其他p、p1、p2、p3进行分组。如何在sql查询中指定该列。

在大多数sql方言中,如果列不在
group by
子句中,则必须指定所需的列。例如,可能需要最小值:

SELECT EID, min(p), min(p1), min(p2), min(p3)
FROM table 1
GROUP BY EID;
或者,如果您需要某个特定记录中的所有值,请使用
first
last

SELECT EID, first(p), first(p1), first(p2), first(p3)
FROM table 1
GROUP BY EID;

在大多数SQL方言中,如果列不在
GROUPBY
子句中,则必须指定所需的列。例如,可能需要最小值:

SELECT EID, min(p), min(p1), min(p2), min(p3)
FROM table 1
GROUP BY EID;
或者,如果您需要某个特定记录中的所有值,请使用
first
last

SELECT EID, first(p), first(p1), first(p2), first(p3)
FROM table 1
GROUP BY EID;

你需要在p,p1。。。否则sql server将如何知道如何“合并”它们?@vuyy1182这在Postgresql(和MySQL上也是可能的,尽管实现得很差)。这在SQL Server或Microsoft Access中都是不可能的。请参阅:您需要在p、p1、。。。否则sql server将如何知道如何“合并”它们?@vuyy1182这在Postgresql(和MySQL上也是可能的,尽管实现得很差)。这在SQL Server或Microsoft Access中都是不可能的。见: