2016-08-07 2 views
0

MS Access에서 GROUP BY과 관련하여 문제가 있습니다.GROUP BY 매개 변수가 변경되면 오류가 발생합니다.

질문 : 나는 GROUP BY 오프라인 "tcount, 사용자 ID, 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 
...  ... ... 
+0

: 다음 작업의 예에서 볼 수

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

. 'sess '에 대한 카운트는 질문에 보이는 데이터를 기반으로 적어도 13이어야합니다. –

답변

0

이제 원하는 값을 계산하지 않고 모든 열을 선택합니다. 이 '그룹화'당신의 열의 모든 값이 동일한하는 모든 행에 대한 Tcount을 요약 한 다음 쿼리

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

을보십시오. Tcount 열은에 의해 그룹에 없습니다.

0

시도를 : 쿼리가 같아야합니다 Tcount :

하여 그룹을 원하는 경우

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

또는

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

행운을 비네.

1

이전 질문에서 동일한 데이터베이스에 관한 약간 다른 쿼리 How to get top 10 and ORDER BY() from COUNT()을 사용하여 다른 쿼리를 사용하도록 제안했습니다. (대답이 내 질문이 아니더라도 대답을 수락하면 좋을 것입니다.)

내가 제안한 질문은 사용자의 요구에 맞게 쉽게 변경할 수 있습니다. 당신이 GROUP BY tcode, userid을 가질 수 있도록

SELECT userid, COUNT(tcode) as transactions_count 
FROM sap_security_log 
GROUP BY userid 
ORDER BY transactions_count DESC LIMIT 10 
  • 당신은 GROUP BY 표현 tcode을 추가 할 수 있습니다.
  • ORDER BY 표현식을 좀 더 관련성 높은 것으로 변경할 수 있습니다. ORDER BYtcode을 제안한 다음 transactions_count
  • LIMIT 10은 더 이상 필요하지 않습니다. 아마 10 만 아니라 모든 결과를 찾고있을 테니까요.

이 다음과 같은 코드로 이어질 것입니다 : 내가 원하는 결과를 데이터로 무엇을해야 볼 수 없습니다 http://sqlfiddle.com/#!9/016f93/1