2014-03-27 52 views
0

我的樣本SQL查詢如何選擇列,而不包括他們GROUP BY訪問SQL

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

給錯誤不是總function.I的一部分,希望通過組僅EID並非所有其他P,P1 ,p2,p3。我如何指定在SQL查詢。

+0

您需要使用頁上的聚集,P1 ,...否則SQL Server如何知道如何「合併」它們? – Michael

+0

@ vuyy1182這在Postgresql上也是可行的(儘管實現不佳,MySQL也是如此)。這在SQL Server和Microsoft Access中是不可能的。請參閱:http://www.ienablemuch.com/2010/08/postgresql-recognizing-functional.html –

回答

4

在SQL的大多數方言中,如果該列不在group by子句中,則必須指定哪一個列。比如,也許你想要的最小值:

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

或者,如果你從一個特定的記錄想所有的值,用firstlast

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