Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我如何使用mysql获取0(无记录)?_Mysql_Sql - Fatal编程技术网

我如何使用mysql获取0(无记录)?

我如何使用mysql获取0(无记录)?,mysql,sql,Mysql,Sql,我是mySql新手。我必须按周天数计算表中的点击次数 这里的周期取决于数据库。但如果上周没有记录,它就不在名单上。但我需要它作为0。那我该怎么办呢 SELECT CASE WHEN PERIOD >= NOW() - INTERVAL 4 WEEK AND PERIOD < NOW() - INTERVAL 3 WEEK THEN '22-28 days ago' WHEN PERIOD >= NOW() - INTERVAL

我是mySql新手。我必须按周天数计算表中的点击次数

这里的周期取决于数据库。但如果上周没有记录,它就不在名单上。但我需要它作为0。那我该怎么办呢

SELECT CASE 
    WHEN PERIOD >= NOW() - INTERVAL 4 WEEK
                AND PERIOD < NOW() - INTERVAL 3 WEEK THEN '22-28 days ago'

    WHEN PERIOD >= NOW() - INTERVAL 3 WEEK
                AND PERIOD < NOW() - INTERVAL 2 WEEK THEN '15-21 days ago'

    WHEN PERIOD >= NOW() - INTERVAL 2 WEEK
        AND PERIOD < NOW() - INTERVAL 1 WEEK THEN '8-14 days ago'

    WHEN PERIOD >= NOW() - INTERVAL 1 WEEK
                THEN 'up to 7 days ago'
           END WeekPeriod, IFNULL(count(CLICKS),0) TotalClicks

FROM TABLE

WHERE PERIOD >= NOW() - INTERVAL 4 WEEK

GROUP BY CASE 
    WHEN PERIOD >= NOW() - INTERVAL 4 WEEK
                    AND PERIOD < NOW() - INTERVAL 3 WEEK THEN '22-28 days ago'

    WHEN PERIOD >= NOW() - INTERVAL 3 WEEK
                AND PERIOD < NOW() - INTERVAL 2 WEEK THEN '15-21 days ago'

    WHEN PERIOD >= NOW() - INTERVAL 2 WEEK
                AND PERIOD < NOW() - INTERVAL 1 WEEK THEN '08-14 days ago'

    WHEN PERIOD >= NOW() - INTERVAL 1 WEEK
                THEN '01 to 7 days ago'

END
 ORDER BY WeekPeriod";

我怎么能在过去的4个月里而不是过去的4周里做到这一点?已尝试但未获得正确的结果@BhavaniMalladi将间隔4周替换为间隔4个月感谢您的回复。是的,我试着每周每月更换一次。我需要每月的产量。比如11月,10月,9月,请再问一个问题。我建议你们不要在数据库层上做,而是在上面的一层上,用PHP或者你们正在使用的任何东西做。是的,问题请看这个链接
1-7 0 
8-15 14 
16-21 34 
21-28 45
SELECT uq.timespan, COALESCE(tsq.TotalClicks, 0) as Clicks FROM (
SELECT '22-28 days ago' as timespan
union SELECT '15-21 days ago'
union SELECT '8-14 days ago'
union SELECT 'up to 7 days ago'
)uq LEFT JOIN (
SELECT CASE 
    WHEN PERIOD >= NOW() - INTERVAL 4 WEEK
                AND PERIOD < NOW() - INTERVAL 3 WEEK THEN '22-28 days ago'
    WHEN PERIOD >= NOW() - INTERVAL 3 WEEK
                AND PERIOD < NOW() - INTERVAL 2 WEEK THEN '15-21 days ago'
    WHEN PERIOD >= NOW() - INTERVAL 2 WEEK
        AND PERIOD < NOW() - INTERVAL 1 WEEK THEN '8-14 days ago'
    WHEN PERIOD >= NOW() - INTERVAL 1 WEEK THEN 'up to 7 days ago'
           END WeekPeriod, 
           count(CLICKS) TotalClicks
FROM TABLE
WHERE PERIOD >= NOW() - INTERVAL 4 WEEK
GROUP BY WeekPeriod
/*ORDER BY WeekPeriod -- unnecessary, GROUP BY implicits ORDER BY*/
)tsq ON uq.timespan = tsq.WeekPeriod