는 다음 사항을 고려하십시오 : 10 개 개의 레코드의 총이있다여러 필드의 고유 값 조합 수 계산.
IF OBJECT_ID ('tempdb..#Customer') IS NOT NULL
DROP TABLE #Customer;
CREATE TABLE #Customer
(
CustomerKey INT IDENTITY (1, 1) NOT NULL
,CustomerNum INT NOT NULL
,CustomerName VARCHAR (25) NOT NULL
,Planet VARCHAR (25) NOT NULL
)
GO
INSERT INTO #Customer (CustomerNum, CustomerName, Planet)
VALUES (1, 'Anakin Skywalker', 'Tatooine')
, (2, 'Yoda', 'Coruscant')
, (3, 'Obi-Wan Kenobi', 'Coruscant')
, (4, 'Luke Skywalker', 'Tatooine')
, (4, 'Luke Skywalker', 'Tatooine')
, (4, 'Luke Skywalker', 'Bespin')
, (4, 'Luke Skywalker', 'Bespin')
, (4, 'Luke Skywalker', 'Endor')
, (4, 'Luke Skywalker', 'Tatooine')
, (4, 'Luke Skywalker', 'Kashyyyk');
공지있다. 다음 두 쿼리 중 CustomerName과 PLanet의 고유 한 조합 목록을 얻을 수 있다는 것을 알고 있습니다.
SELECT DISTINCT CustomerName, Planet FROM #Customer;
SELECT CustomerName, Planet FROM #Customer
GROUP BY CustomerName, Planet;
그러나 내가 원하는 것은 값 자체가 아니라 그 값의 개수를 얻는 간단한 방법입니다. 나는 타이핑하는 방법이 빠르며, 공연도하고 싶습니다. CTE, 임시 테이블, 테이블 변수 또는 하위 쿼리에 값을로드 한 다음 레코드를 계산할 수 있음을 알고 있습니다. 이 작업을 수행하는 더 좋은 방법이 있습니까?
"빠른 입력"이 필요한 이유는 무엇입니까? 얼마나 자주 이러한 쿼리를 직접 작성하고 있습니까? 쿼리가 더 효율적인지 또는 쿼리가 "빠르게 입력되는"것이 더 중요한지 알려주실 수 있습니까? –
[@ ypercube의 SQLFiddle] (http://sqlfiddle.com/#!6/d8deb/25)에 몇 가지 다른 유사 검색어를 추가했습니다. 당신은 그 (것)들을 시험해야하고 그 후에 * 당신은 당신의 타자를 치는 손가락에 성과 그리고/또는 긴장에 근거하여 당신이 가장 좋아하는 것을 결정할 수있다. –
[SQL - 열의 고유 한 조합을 계산하는 방법] 가능한 복제본 (http://stackoverflow.com/questions/8519747/sql-how-to-count-unique-combination-of-columns) – Chronial