2011-04-12 3 views
1

이 작업을 수행하는 방법에 대한 빠른 질문은 어떻게 작동하는지 확신 할 수 없습니다. 본질적으로 나는 하루에 수천 개의 행을 가진 테이블을 가지고 있으며 각 행에 대해 날짜별로 그룹화하려고합니다. 그 부분은 쉽지만 인스턴스가 그 그룹에 있는지 알고 싶습니다. 예를 들어 폴이이 날짜에 있는지 알고 싶습니다.MySQL 쿼리 도움말, 시간별 그룹화, 레코드가 설정되어 있는지 확인

Date  Name 
------------------ 
| 4/8/2011 | Jack | 
| 4/8/2011 | Jack | 
| 4/8/2011 | Jack | 
| 4/8/2011 | Jack | 
| 4/8/2011 | Jack | 
| 4/8/2011 | Paul | 

나는 날짜와 다음 사람 SELECT count(*) as Total /*not sure what goes here*/ WHERE date = '2011-04-08' GROUP BY date

+0

는 소리. 의미론이지만 쿼리에 중요합니다. –

+0

글쎄, 폴은 분명히 그 질문에 대한 것이고, 나는 그가 각 그룹에 있는지 아닌지 알 필요가있다. –

+0

그러면 현재 ** taylonr **의 답변으로 그러한 보고서가 작성됩니다. 나는 그것이 당신이 원하는 것이지 확신하지 않지만, 나는 가정을하고 있습니다. –

답변

3
Select date, Count(*) 
    , Max(Case When Name = 'Paul' Then 1 Else 0 End) As HasPaul 
From MyTable 
Where date = '2011-04-08' 
Group By date 

당신은 단순히 PaulCount이> 0인지 여부를보고 또 다른 방법 : 당신은 오히려 그룹이 특정 날짜에 * * 존재를 알 것 같은

Select date 
    , Sum(Case When Name = 'Jack' Then 1 Else 0 End) As JackCount 
    , Sum(Case When Name = 'Paul' Then 1 Else 0 End) As PaulCount 
    , Count(*) As OverallCount 
From MyTable 
Where date = '2011-04-08' 
Group By date 
0
SELECT COUNT(*), Name FROM <TableName> Where date = <date desired> GROUP BY date, Name 

이 의지의 그룹을 가지고, 그래서 잭에 대한 2011-04-08 그룹이있을 것와 폴 하나.

관련 문제