GROUP BY参数更改时出错

时间:2016-08-07 10:17:43

标签: sql ms-access group-by

我在MS Access中遇到GROUP BY麻烦。

问题: 当我从GROUP BY行中删除“tcount,userid,ttext”时,我收到一个错误:“您的查询不包含指定的表达式”tcount“作为聚合函数的一部分”

查询

Select TCODE, Tcount, Userid, TTEXT
From Sap_Security_Log
Group by Tcode,tcount, userid, ttext

结果enter image description here

我想要的内容GROUP BY TCODE,示例结果集:

TCODE  TCOUNT  USERID    TTEXT
SESS     13    USER-001  
SESS     8     USER-003
SESS     1     USER-002
...     ...    ...

3 个答案:

答案 0 :(得分:1)

在您之前的问题中,对于同一个数据库的查询How to get top 10 and ORDER BY() from COUNT()略有不同,我建议使用不同的查询。 (如果你接受了答案,那将是很好的,即使答案不是我的,只要它回答了你的问题。)

我建议的查询可以轻松修改以满足您的需求。

SELECT userid, COUNT(tcode) as transactions_count
FROM sap_security_log
GROUP BY userid
ORDER BY transactions_count DESC LIMIT 10
  • 您可以将tcode添加到GROUP BY表达式,以便GROUP BY tcode, userid
  • 您可能希望将ORDER BY表达式更改为更相关的内容。我建议你ORDER BY tcode然后transactions_count
  • 不再需要LIMIT 10,因为您可能正在寻找所有结果,而不仅仅是10。

这将导致以下代码:

SELECT userid, tcode, COUNT(tcode) as transactions_count
FROM sap_security_log
GROUP BY tcode, userid
ORDER BY tcode, transactions_count DESC

您可以在以下工作示例中查看:http://sqlfiddle.com/#!9/016f93/1

答案 1 :(得分:0)

尝试:您的查询应该是:

  Select TCODE, Tcount, Userid, TTEXT
  From Sap_Security_Log
  Group by Tcode,Tcount,Userid,Ttext;

或者如果想要分组Tcount :

Select TCODE, Sum(Tcount) As Count, Userid, TTEXT
  From Sap_Security_Log
  Group by Tcode;

祝你好运。

答案 2 :(得分:0)

您现在正在选择所有列,而不是计算所需的值。请尝试以下查询

Select TCODE, Sum(Tcount), Userid, TTEXT
From Sap_Security_Log
Group by Tcode, userid, ttext

这总结了“group by”列中所有值相同的所有行的Tcount。请注意,列Tcount不在组中。