2011-04-12 69 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组杰克和一个保罗。