[英]Select * with one Group By Column in SQL
我想从表中select *
并仅按一列分组。 我是SQL的新手,所以有一个基本问题。 我的查询看起来像这样。
Select top 10
[DocumentClass], [DocumentUID]
,[DocumentClassification]
,[DocumentNumber]
,[Revision]
,[Description]
,[Owner]
from
Table
Group BY
[DocumentClass]
我得到的错误:
选择列表中的“ DocumentUID”列无效,因为它既不包含在聚合函数中,也不包含在GROUP BY子句中。
请指教。 谢谢
如果要每个文档类获取一行,请使用row_number()
代替group by
:
Select top 10 t.*
from (select t.*, row_number() over (partition by documentclass order by newid()) as seqnum
from table t
) t
where seqnum = 1;
row_number()
是row_number()
的函数。 在这种情况下,每个文档类都会重新开始。 newid()
只是选择随机行的一种方法。
通常,当您使用group by
,您还将具有聚合功能,例如min()
或sum()
。
此错误表示SQL Server不知道您要使用哪一列。 当您使用GROUP BY命令时,您想要选择一个特定值(MIN,SUM或AVG),或者您想要全部(计数该行)。 您可以从该站点获得所有必要的信息。 通过...分组
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.