>  Q&A  >  본문

SELECT 목록에서 해당 컬럼이 유효하지 않은 이유는 해당 컬럼이 집계 함수나 GROUP BY 절에 포함되어 있지 않기 때문입니다.

<p>오류가 발생했습니다. - </p> <인용문> <p>'Employee.EmpID' 열은 선택 목록에서 유효하지 않습니다. 집계 함수 또는 GROUP BY 절에는 포함되지 않습니다. </p> </인용문> <시간 /> <pre class="brush:php;toolbar:false;">loc.LocationID, emp.EmpID 선택 직원으로부터 emp 완전 조인 위치로 loc로 emp.LocationID = loc.LocationID loc.LocationID</pre>로 그룹화 <p>이 상황은 Bill Karwin의 답변과 일치합니다. </p> <p>위의 내용을 정정하고 ExactaBox에 적합한 답변입니다. </p> <pre class="brush:php;toolbar:false;">select loc.LocationID, count(emp.EmpID) -- count(*) 아님, null 계산을 원하지 않음 직원으로부터 emp 완전 조인 위치로 loc로 emp.LocationID = loc.LocationID loc.LocationID</pre>로 그룹화 <시간 /> <p><strong>원래 질문 -</strong></p> <p>SQL 쿼리의 경우 -</p> <pre class="brush:php;toolbar:false;">선택 * 직원으로부터 emp 완전 조인 위치로 loc로 emp.LocationID = loc.LocationID (loc.LocationID)</pre>로 그룹화 <p>이 오류가 발생하는 이유를 모르겠습니다. 내가 원하는 것은 테이블을 조인한 다음 특정 위치에 있는 모든 직원을 함께 그룹화하는 것입니다. </p> <p><strong>내 문제를 부분적으로 설명한 것 같습니다. 가능하다면 알려주십시오.</strong> <p>같은 위치에서 근무하는 모든 직원을 그룹화하려면 먼저 LocationID를 언급해야 합니다. </p> <p>그러면 옆에 있는 각 직원 ID를 언급할 수 없습니다. 대신 해당 위치의 총 직원 수를 언급합니다. 즉, 해당 위치에서 근무하는 직원 수를 SUM()해야 합니다. 왜 우리가 후자의 길로 갈 것인지 잘 모르겠습니다. 따라서 이는 오류의 "집계 함수에 포함되어 있지 않습니다" 부분을 설명합니다. </p> <p>잘못된 <strong><code>GROUP BY</code></strong> 절 부분에 대한 설명은 무엇입니까? </p>
P粉517090748P粉517090748423일 전616

모든 응답(2)나는 대답할 것이다

  • P粉155832941

    P粉1558329412023-08-24 13:38:21

    예를 들어 ONLY_FULL_GROUP_BY 服务器模式(默认情况下),您的查询将在 MYSQL 中运行。但在本例中,您使用的是不同的 RDBMS。因此,为了使您的查询正常工作,请将所有非聚合列添加到您的GROUP BY절에 비활성화를 설정한 경우

    으아악

    비집계 열은 열이 SUMMAXCOUNT 등과 같은 집계 함수로 전달되지 않음을 의미합니다.

    회신하다
    0
  • P粉090087228

    P粉0900872282023-08-24 10:30:14

    다음 테이블이 있다고 가정합시다T:

    으아아아

    다음 쿼리를 실행합니다:

    으아아아

    출력에는 a=1,第二行为 a=2에 대한 두 줄이 있어야 합니다.

    그런데 이 두 줄에서 b 값은 무엇을 표시해야 할까요? 각 경우에는 세 가지 가능성이 있으며 쿼리의 어떤 내용도 각 그룹에서 b에 대해 어떤 값을 선택할지 명확하게 나타내지 않습니다. 의미가 매우 모호합니다.

    이는 GROUP BY 쿼리를 실행하고 그룹화의 일부가 아니거나 집계 함수(SUM, MIN, MAX, 등.). 수정하면 다음과 같을 수 있습니다:

    으아아아

    이제 분명히 다음과 같은 결과를 원합니다:

    으아아아

    회신하다
    0
  • 취소회신하다