我需要找到当天填写调查问卷的用户数。
这些是总计数,我需要每天计数。以下是数据库的图片:http://www.upload.ee/image/3800828/pildike.png
SELECT DISTINCT USER_ID, COUNT(ANSWER_TIME) AS ARV FROM RESULT WHERE ANSWER_TIME IS NOT NULL GROUP BY USER_ID ORDER BY ARV DESC;
但我需要不同的行,answer_day_of_week是1到7,具体取决于日期,answer_time是TIMESTAMP。统计数据已经持续了97天,例如32人已经在97天内完成了2000多次,但我只需要算一次......
我想过使用if-elseif或while或case或某种子查询?我尝试了一些问题,但我总是失败......
例如,有一天我可以在1. oct上从一个人获得15行,但在2. oct上有0行,然后它给出了他已经填写调查一次的答案。
答案 0 :(得分:0)
只需更改您的SQL查询:
SELECT DISTINCT USER_ID,COUNT(ANSWER_TIME)AS ARV from RESULT WHERE DATE(ANSWER_TIME)> = DATE_SUB(CURDATE(),INTERVAL' 97 DAYS')GROUP BY USER_ID ORDER by ARV DESC;
答案 1 :(得分:0)
SELECT USER_ID, COUNT(ARV) AS ARV
FROM
(
SELECT DISTINCT USER_ID, DATE(ANSWER_TIME) AS ARV FROM RESULT WHERE ANSWER_TIME IS NOT NULL
) A
GROUP BY USER_ID ORDER BY ARV DESC;
请尝试以上查询