2011-04-12 66 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

聽起來像是你寧願知道哪組爲*目前*在某個日期。語義,但它對查詢很重要。 – 2011-04-12 00:56:27

+0

那麼,保羅肯定會在那裏查詢,我只需要知道他是否在每個組中。 – 2011-04-12 00:57:26

+0

然後,目前,來自** taylonr **的答案將創建這樣的報告。我不確定這是你想要的,但我正在做出假設。 – 2011-04-12 00:59:59

回答

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/4/8組傑克和一個保羅。