我试图将某个运营商的点击次数计算为一周的总数,然后是每天
如果需要,我可以为变量添加declare和select语句,但它们具有类似sum函数所需的效果,所以这似乎是不必要的。
我每天都得到相同的结果,这相当于总周数 - 而不是预期的效果。任何人都可以解释为什么这些陈述似乎被忽略了吗?
SELECT HITS.OPPO
, COUNT(CASE WHEN STOP_TIME BETWEEN @StartMinSix and @TodayEnd THEN 1 ELSE 0 END) AS 'COUNT_TOTAL'
, COUNT(CASE WHEN STOP_TIME BETWEEN @TodayDate and @TodayEnd THEN 1 ELSE 0 END) AS 'COUNT_TODAY'
, COUNT(CASE WHEN STOP_TIME BETWEEN @StartMinOne and @TodayDate THEN 1 ELSE 0 END) AS 'COUNT_YESTERDAY'
, COUNT(CASE WHEN STOP_TIME BETWEEN @StartMinTwo and @StartMinOne THEN 1 ELSE 0 END) AS 'COUNT_TODAY_MIN2'
, COUNT(CASE WHEN STOP_TIME BETWEEN @StartMinThree and @StartMinTwo THEN 1 ELSE 0 END) AS 'COUNT_TODAY_MIN3'
, COUNT(CASE WHEN STOP_TIME BETWEEN @StartMinFour and @StartMinThree THEN 1 ELSE 0 END) AS 'COUNT_TODAY_MIN4'
, COUNT(CASE WHEN STOP_TIME BETWEEN @StartMinFive and @StartMinFour THEN 1 ELSE 0 END) AS 'COUNT_TODAY_MIN5'
, COUNT(CASE WHEN STOP_TIME BETWEEN @StartMinSix and @StartMinFive THEN 1 ELSE 0 END) AS 'COUNT_TODAY_MIN6'
FROM HITS
WHERE HITS.OPPO = @operator
and STOP_TIME > @StartMinSix
and ESTIMATED_COST > 0
GROUP BY HITS.OPPO
答案 0 :(得分:1)
SELECT HITS.OPPO ,COUNT(在@StartMinSix和@TodayEnd之间的STOP_TIME,然后是1个为空的结束时的情况)AS' COUNT_TOTAL' ....等
答案 1 :(得分:1)
我认为你需要SUM而不是COUNT
SELECT HITS.OPPO
, SUM(CASE WHEN STOP_TIME BETWEEN @StartMinSix and @TodayEnd THEN 1 ELSE 0 END) AS 'COUNT_TOTAL'
, SUM(CASE WHEN STOP_TIME BETWEEN @TodayDate and @TodayEnd THEN 1 ELSE 0 END) AS 'COUNT_TODAY'
, SUM(CASE WHEN STOP_TIME BETWEEN @StartMinOne and @TodayDate THEN 1 ELSE 0 END) AS 'COUNT_YESTERDAY'
, SUM(CASE WHEN STOP_TIME BETWEEN @StartMinTwo and @StartMinOne THEN 1 ELSE 0 END) AS 'COUNT_TODAY_MIN2'
, SUM(CASE WHEN STOP_TIME BETWEEN @StartMinThree and @StartMinTwo THEN 1 ELSE 0 END) AS 'COUNT_TODAY_MIN3'
, SUM(CASE WHEN STOP_TIME BETWEEN @StartMinFour and @StartMinThree THEN 1 ELSE 0 END) AS 'COUNT_TODAY_MIN4'
, SUM(CASE WHEN STOP_TIME BETWEEN @StartMinFive and @StartMinFour THEN 1 ELSE 0 END) AS 'COUNT_TODAY_MIN5'
, SUM(CASE WHEN STOP_TIME BETWEEN @StartMinSix and @StartMinFive THEN 1 ELSE 0 END) AS 'COUNT_TODAY_MIN6'
FROM HITS
WHERE HITS.OPPO = @operator
and STOP_TIME > @StartMinSix
and ESTIMATED_COST > 0
GROUP BY HITS.OPPO