我有一个表REGDATE列,注册日期(YYYY-MM-DD HH:MM:SS)。我想显示一个直方图(ExtJS),以了解用户注册的年份。我希望在过去的十二个月内就当前日期进行此操作,并按星期分组。最近12个月,每周一组
任何提示?
我有一个表REGDATE列,注册日期(YYYY-MM-DD HH:MM:SS)。我想显示一个直方图(ExtJS),以了解用户注册的年份。我希望在过去的十二个月内就当前日期进行此操作,并按星期分组。最近12个月,每周一组
任何提示?
:
SELECT COUNT(*), DATE_FORMAT(regdate, "%X%V") AS regweek FROM table GROUP BY regweek;
或
SELECT COUNT(*), YEARWEEK(NOW(), 2) as regweek FROM table GROUP BY regweek;
PostgreSQL中:
SELECT COUNT(*), EXTRACT(YEAR FROM regdate)::text || EXTRACT(WEEK FROM regdate)::text AS regweek FROM table GROUP BY regweek;
我尝试了PostgreSQL并出现错误。必须在EXTRACT(年)后添加:: varchar。 – bluemihai 2014-04-09 20:38:15
对于那些正在寻找PostgreSQL版本的人,Tom Gerken下面的例子比较好。它限制为12个月,零填充日期,并处理日期时间到文本的转换。 – keithhackbarth 2015-08-10 19:15:39
提示:(SQL)
SELECT CONVERT (VARCHAR(7), REGDATE, 120) AS [RegistrationMonth]
FROM ...
GROUP BY CONVERT (VARCHAR(7), REGDATE, 120)
ORDER BY CONVERT (VARCHAR(7), REGDATE, 120)
FWIW PostgreSQL中,Karaszi有问题的解答,但有一个更快的查询:
SELECT date_trunc('week', REGDATE) AS "Week" , count(*) AS "No. of users"
FROM <<TABLE>>
WHERE REGDATE > now() - interval '12 months'
GROUP BY 1
ORDER BY 1;
我基于这一关的Ben Goodacre
这应该是被接受的答案;) – Todd 2017-10-27 20:30:31
工作也许这?
select to_char(REGDATE,'WW') "Week number",
count(*) "number of signups",
from YOUR_TABLE
where REGDATE > current_date-365
group by to_char(REGDATE,'WW')
order by to_char(REGDATE,'WW')
+1使用'TO_CHAR'。我想要独特的一周(而不是一年一次),所以我用'to_char(regdate,'YYYY WW')',但是同样的想法。 – tscizzle 2016-04-29 17:01:45
其中SQL数据库? – 2010-09-24 15:12:51