데이터를 선택하지 않고 st.store
별로 그룹화하면 오류가 발생합니다. SELECT 또는 GROUP BY 절에서 원하는 모든 비 집계는 모두에 나타나야합니다.
이렇게 말하면 당신은 이것을 너무 복잡하게 만듭니다. 우리가 처음에 시작하면 당신은 상점에서 뭔가를 원하는 : 지금 당신은 독특한 상점이 원하는 특정 SKU
select * from stores where store between 1 and 10 and sku = 10101
와
select * from stores
특정 저장
select * from stores where store between 1 and 10
을
select distinct store from stores where store between 1 and 10 and sku = 10101
마지막으로 y 고유 상점 수를 원합니다.
select count(distinct store)
from stores
where store between 1 and 10
and sku = 10101
논리 레이어가 아닌 세트 레이어에서 쿼리를 작성하는 것처럼 보입니다. 쿼리는 생성 된 표현식에 의존하는 연산을 추가해야하는 경우에만 세트 (인라인 뷰 등)를 만들어야하는 조건 집합입니다. 쿼리를 작성할 때 추가 논리를 계층화하는 데 중점을 둡니다. 결과 쿼리가 당신이 그것을 어떻게 말할 것인지와 비교할 때 너무 복잡해 보인다면 가능성이 있습니다. 나는 실제로 STORE에서 고유 것을 가정하려는 테이블 이름 STORES을 바탕으로
(이것은 기본 키 때문에 null이 아닌 것을) 그래서 당신은 추가 정렬을 수행 할 필요가 없습니다 당신은 당신이에 의해 그룹과 * 사용하고 하나 개의 필드 수없는 선택 필드를 정의해야합니다 그때까지 그룹을 사용할 때 SQL에서
select count(*)
from stores
where store between 1 and 10
and sku = 10101
출처
2017-12-27 17:57:50
Ben