SELECT 목록에서 해당 컬럼이 유효하지 않은 이유는 해당 컬럼이 집계 함수나 GROUP BY 절에 포함되어 있지 않기 때문입니다.
P粉517090748
2023-08-23 14:36:31
<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>
예를 들어
으아악ONLY_FULL_GROUP_BY
服务器模式(默认情况下),您的查询将在MYSQL
中运行。但在本例中,您使用的是不同的 RDBMS。因此,为了使您的查询正常工作,请将所有非聚合列添加到您的GROUP BY
절에 비활성화를 설정한 경우비집계 열은 열이
SUM
、MAX
、COUNT
등과 같은 집계 함수로 전달되지 않음을 의미합니다.다음 테이블이 있다고 가정합시다
으아아아T
:다음 쿼리를 실행합니다:
으아아아출력에는
a=1
,第二行为a=2
에 대한 두 줄이 있어야 합니다.그런데 이 두 줄에서 b 값은 무엇을 표시해야 할까요? 각 경우에는 세 가지 가능성이 있으며 쿼리의 어떤 내용도 각 그룹에서 b에 대해 어떤 값을 선택할지 명확하게 나타내지 않습니다. 의미가 매우 모호합니다.
이는 GROUP BY 쿼리를 실행하고 그룹화의 일부가 아니거나 집계 함수(SUM, MIN, MAX, 등.). 수정하면 다음과 같을 수 있습니다:
으아아아이제 분명히 다음과 같은 결과를 원합니다:
으아아아