나는 thhree 테이블이 필드 이름 : 코드 블록계수 필드는
세 개의 테이블에서 세 개의 필드가 발생하는 횟수를 계산 중입니다. 나는 (그것을 확실히 BTW 작동)이 SQL 쿼리를 작성 : 세 개의 테이블의 각 필드의 발행 수를 계산 즉 ..
Entity quantity
----------- -----------
codeblocks 3
Definitions 4
Subjects 2
:
SELECT Entity, COUNT(FieldToCount) AS quantity
FROM (SELECT Entity, FieldToCount
FROM (SELECT 'Subjects' AS Entity, COUNT(term) AS FieldToCount
FROM dbo.subjects
GROUP BY term
UNION ALL
SELECT 'Definitions' AS Entity, COUNT(what) AS FieldToCount
FROM dbo.definitions
GROUP BY what
UNION ALL
SELECT 'codeblocks' AS Entity, COUNT(codeblock) AS FieldToCount
FROM dbo.codeblocks
GROUP BY codeblock) AS SUMTABLE) AS REPORT
GROUP BY Entity, FieldToCount
이 결과를 얻었다.
이제 어떻게이 쿼리를 더 작고 우아하게 작성할 수 있습니까? 또는 여러 테이블에서 필드의 발생을 계산하는 최소 또는보다 우아한 방법은 무엇입니까?
(거래의 SQL에서)
는
여러 개의 SQL을 선택하면 쿼리가 복잡해질 수 있습니다. 이 경우 노동 조합으로 내부 선택 만하면됩니다. – IndoKnight
좋습니다. 고마워요. 여기에서 전체 솔루션을 설명하십시오 (tommy_o와 같이 끝까지 배치했습니다). UNION 연산자는 여러 select 문의 결과를 결합하는 데 사용됩니다. 각 SELECT 문은 동일한 수의 열을 쿼리해야합니다. 쿼리되는 열은 모두 동일한 데이터 형식을 가져야하며 각 쿼리에서 동일한 순서로 있어야합니다. 다음 세 가지 select 문을 수행합니다. 하나는 각 테이블에 대해, 그리고 Union All의 도움으로 결과를 연결합니다 (어떤 종류의 조인입니까?). – netfed