簡體   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