繁体   English   中英

查找组中的前3个值时,“查询不将指定的表达式作为聚合函数的一部分”

[英]“Query does not include the specified expression as part of an aggregate function” when looking for top 3 values in group

这是一些数据的示例:

样本数据

我正在尝试按ID_stopNn分组时获得L的前3个值。

我尝试了以下SQL:

SELECT TOP 3 Sclerometrica_equotip.ID_stop, Sclerometrica_equotip.Nn, Sclerometrica_equotip.L
FROM Sclerometrica_equotip
GROUP BY Sclerometrica_equotip.ID_stop, Sclerometrica_equotip.Nn
ORDER BY Sclerometrica_equotip.ID_stop, Sclerometrica_equotip.Nn;

但出现以下错误:

查询不包括指定的表达式作为聚合函数的一部分。

  1. 我不明白该错误信息。 有人可以向我解释吗?
  2. 我该如何完成我想做的事情?

该错误意味着查询中的某些字段不属于分组,也没有使用聚合函数聚合在一起。

分组时,您将基于分组的字段(在本例中为ID_stopNn )压缩一组记录。 这意味着当您有100条记录之前,现在有3条记录。但是,应该从这100条记录中的哪一条中取L的值? 您必须在要分组的字段中包括L ,或者必须指定将对L所有值起作用的某些操作。 您可以使用的可能操作是:

  • 第一值- First(L)
  • 最后一个值- Last(L)
  • 平均- Avg(L)
  • 最小- Min(L)
  • 最大- Max(L)
  • 总和- Sum(L)
  • 组中的记录Count(*)
  • 标准偏差StDev(L)StDevP(L)
  • 方差Var(L)VarP(L)

参考

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM