欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

请看下小弟我这个统计每天用户注册数并分页的sql哪出毛病了!

更新时间: 2014-01-05 02:12:18 责任编辑: Author_N1

 

请看下我这个统计每天用户注册数并分页的sql哪出毛病了!急
我需要按天统计用户的注册数并分页
没分页的sql的是正确的,
SELECT TO_CHAR(T.CREATETIME,'YYYY-MM-DD') dates,COUNT(*) nums 
from USERACCOUNT T 
WHERE CREATETIME BETWEEN TO_DATE('2013-05-17 13:16:16', 'YYYY-MM-DD HH24:MI:SS:') and TO_DATE('2013-04-23 10:28:42', 'YYYY-MM-DD HH24:MI:SS:') 
GROUP BY TO_CHAR(T.CREATETIME,'YYYY-MM-DD') 
ORDER BY dates 


分页:
(select rownum r,t1.* ,TO_CHAR(T1.CREATETIME,'YYYY-MM-DD') dates 
from USERACCOUNT t1 
where rownum<18 AND CREATETIME BETWEEN TO_DATE('2011-05-17 13:16:16', 'YYYY-MM-DD HH24:MI:SS:') and TO_DATE('2013-09-23 10:28:42', 'YYYY-MM-DD HH24:MI:SS:')
) t2
where t2.r>15 
GROUP BY dates1 
ORDER BY dates1;

怎么查都不对,报错[Err] ORA-00904: "DATES1": invalid identifier

--参考方法--
引用:
select t2.*,TO_CHAR(t2.dates,'YYYY-MM-DD') dates1 from 

(select rownum r,t1.* ,TO_CHAR(T1.CREATETIME,'YYYY-MM-DD') dates 
from USERACCOUNT t1 
where rownum<18 AND CREATETIME BETWEEN TO_DATE('2011-05-17 13:16:16', 'YYYY-MM-DD HH24:MI:SS:') and TO_DATE('2013-09-23 10:28:42', 'YYYY-MM-DD HH24:MI:SS:')
) t2
where t2.r>15 
GROUP BY dates1 
ORDER BY dates1;
这样的也不行

1,GROUP BY dates1 中date1不能是外层查询字段的别名;
2,“select t2.*,TO_CHAR(t2.dates,'YYYY-MM-DD') dates1 from”,除了聚合函数外,select 后只能出现GROUP BY后有的字段
--参考方法--
你想聚合什么字段统计,如果不需要的就直接
select t2.* from 
(select rownum r,t1.* ,TO_CHAR(T1.CREATETIME,'YYYY-MM-DD') dates 
from USERACCOUNT t1 
where rownum<18 AND CREATETIME BETWEEN TO_DATE('2011-05-17 13:16:16', 'YYYY-MM-DD HH24:MI:SS:') and TO_DATE('2013-09-23 10:28:42', 'YYYY-MM-DD HH24:MI:SS:')
) t2
where t2.r>15


--参考方法--
引用:
Quote: 引用:

GROUP BY dates1 
date1不能是外层查询字段的别名


select t2.* from 
(select rownum r,t1.* ,TO_CHAR(T1.CREATETIME,'YYYY-MM-DD') dates 
from USERACCOUNT t1 
where rownum<18 AND CREATETIME BETWEEN TO_DATE('2011-05-17 13:16:16', 'YYYY-MM-DD HH24:MI:SS:') and TO_DATE('2013-09-23 10:28:42', 'YYYY-MM-DD HH24:MI:SS:')
) t2
where t2.r>15 
GROUP BY dates 
ORDER BY dates;


字查询里别名也不行,而且子查询是能查到信息的,就是不能GROUP BY dates ,提示:[Err] ORA-00979: not a GROUP BY expression

子查询能查到信息是正常的,你这里的GROUP BY报错,你应该再认真看5楼的第二点
--参考方法--
试试这个。。。
select t2.dates1 from (select rownum r,t1.* ,TO_CHAR(T1.CREATETIME,'YYYY-MM-DD') dates1 
from USERACCOUNT t1 
where rownum<18 AND CREATETIME BETWEEN TO_DATE('2011-05-17 13:16:16', 'YYYY-MM-DD HH24:MI:SS:') and TO_DATE('2013-09-23 10:28:42', 'YYYY-MM-DD HH24:MI:SS:')
) t2
where t2.r>15 
GROUP BY dates1 
ORDER BY dates1;
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:12:18
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/6916/
本文WWW.DOC100.NET DOC100.NET版权所有。