2012-01-07 21 views

回答

1
select 
id, 
count(id) as cnt, 
sum(if(now() - interval 7 day <= dated_on,1,0)) as lastweek 
from table 
group by id 
0
SELECT 
    id, 
    COUNT(*), 
    SUM(CASE WHEN dated_on = CURDATE() - 7 THEN 1 ELSE 0 END) 
FROM 
    yourTable 
GROUP BY 
    id 
+0

它会给出具有差异日期只有数正好为7 – 2012-01-07 12:20:36

+0

@SomnathMuluk - 这是故意的,这似乎是什么OP要求...'有日期差异是星期' – MatBailie 2012-01-07 13:32:42

+0

@ Dems-k ...对不起...我道歉...有时我不记得我的问题?但我记得我的要求... – 2012-01-08 05:24:26

0

我也得到了解决:

SELECT id, count(id) as counter, 
COUNT(CASE WHEN DATEDIFF(CURDATE(), dated_on) < 7 THEN 1 ELSE NULL END) AS latest_count 
FROM my_table 
GROUP BY id