2014-03-01 4 views
4

이 문제점의 내 테이블에는 Player, Team 및 Date_Played라는 세 개의 열이 있습니다. 그룹과 SQL Distinct Count

Player   Team   Date_Played 
John Smith  New York  2/25/2014 
Joe Smith  New York  2/25/2014 
Steve Johnson New York  2/25/2014 
Steph Curry Orlando  2/25/2014 
Frank Anthony Orlando  2/26/2014 
Brian Smith New York  2/26/2014 
Steve Johnson New York  2/27/2014 
Steph Curry New York  2/28/2014 

나는 별개의 팀 이름 또는 재생 날짜의 목록을 얻는 방법을 알고 있지만, 내가 무엇을 찾고있어 팀에 의해 그룹과는 별개의 팀 & 날짜 조합의 수를 계산하는 쿼리입니다. 지금까지 내가 가지고

Team   Count 
New York  4 
Orlando  2 

을 :

SELECT DISTINCT Tm, Count(Date_Played) AS Count 
FROM NBAGameLog 
GROUP BY NBAGameLog.[Tm]; 

을하지만이 나에게 날짜별로 그룹화 된 레코드의 총 금액을 제공합니다 그래서 출력은 다음과 같아야합니다. 내가 바로 당신을 이해 한 경우

답변

4

:

SELECT Team, Count(Date_Played) AS Count 
FROM 
    (
     SELECT DISTINCT Team, Date_Played 
     FROM NBAGameLog 
    ) AS whatever 
GROUP BY Team 
+0

그게 다 했어, 고마워! – fullOfQuestions

2

,이 같은 쿼리를 찾고 있습니다 :

이 쿼리는 액세스 2010에서 테스트되었습니다
SELECT x.Team, count(*) 
FROM 
    (SELECT Team, Date_Played 
    FROM NBAGameLog 
    GROUP BY Team, Date_Played) AS x 
GROUP BY x.Team 
+0

액세스 : "집계 함수의 일부로 지정된 식 'Count'를 포함하지 않는 쿼리를 실행하려고했습니다." –

+0

이것은 실제로 나에게 내가 원래 가지고 있었던 것과 같은 결과를 준다. 본질적으로 각 팀의 경기 일 수를 찾고 있습니다. 그래서 위의 예에서 뉴욕은 4 일 동안 서로 다른 날을 보냈습니다. – fullOfQuestions

+0

나는 이것을 upvote하고 싶지만 올바른 문장은'select x.TM, count (*)'이다. –

3

약간 적은 코드 :

SELECT Team, Count(distinct Date_Played) AS Count 
FROM NBAGameLog 
GROUP BY Team 

첫 번째 대답과 동일한 실행 계획을 보여줍니다.