address
, state
및 numEntities
의 세 필드가있는 AddressCount
SQL 테이블이 있습니다. 내가하고 싶은 일은 각 주소에 대해 numEntities + 상태 조합을 취하는 것입니다. 이 설명하기 다소 어렵지만, 나는 다음과 같은 상관 관계 쿼리 내가 달성하기 위해 노력하고있어 제대로 나타냅니다 생각 :같은 항목을 기반으로 열을 합계하려면 어떻게합니까?
SELECT Address, State,
(SELECT SUM(NumEntities)
FROM AddressCount innerQry
WHERE innerQry.address LIKE '%' + outerQry.address + '%'
AND innerQry.state = outerQry.state) As NumEntities
FROM AddressCount outerQry
는 기본적으로,이 주소, 상태가있는 테이블로 끝내고 싶어하고, 와일드 카드로 둘러싸인 해당 주소와 같은 모든 주소에 대한 numEntities의 합계입니다. 따라서 주소가 "25 Courtland Rd"이고 주가 NJ 인 경우 상태가 NJ이고 주소가 '% 25 Courtland Rd %'인 모든 행에 대해 numEntities의 합계를 가져 오려고합니다. GROUP BY LIKE로이 작업을 수행하고 싶지만 SQL로는 가능하지 않다고 생각합니다.
SELECT address, state, sum(numEntities)
FROM AddressCount
GROUP BY (LIKE '%' + address + '%')
제가 위에서 게시 한 상관 관계 쿼리 SQL 문이 정확한 것 같다,하지만 난 가능하면 내부에 의해, 같은 일을 수행하고 싶습니다
에 테이블의 조인 기본 개념은 이런 식으로 뭔가를 달성하는 것입니다 그 자체. 나는 최근에 LIKE 표현에 테이블을 조인 할 수 있다는 읽기, 그래서 나는 다음과 같이 수행 할 :SELECT t1.Address, t1.State, SUM(t2.NumEntities)
FROM AddressCount t1
INNER JOIN AddressCount t2
ON t1.state = t2.state
AND t2.address LIKE '%' + t1.address + '%'
이 보이지 않는 것은 일을하지만 ... 어떤 생각 나는이 작업을 수행 할 수있는 방법을 ?
정확한 주소로 그룹화하고 싶지 않습니다. 그 주소와 비슷한 그룹으로 그룹화하고 싶습니다 ... – froadie
여기에 무슨 일이 일어날 지 생각합니다. 적어도 내가 상상 한 것 (그리고 제이 섹은 분명히 :)). 같은 그룹에 속한다고 생각할만한 주소의 예를 몇 가지 제시 할 수 있습니까? –
저는 여기에 어떤 일이 일어 났는지 확신합니다 : 뉴저지 주에있는 모든 세 줄과 각각 numEntities 1, 2, 4를 사용하면 결과 행 '25 Courtland Road - NJ-7'을 얻을 수 있습니다. 제 생각에 당신이 inner 대신에 left join을 사용한다면, 당신은 또한 얻을 것입니다 :'25 Courtland Road Apt. 34 - 뉴저지 - 0'과 '웨스트 25 코트 랜드로드 - 뉴저지 - 0'. –