我有一个表abc
,其中包含以下列: -
Table abc
name emp_num date id
xyz 1 12/mar/2014 sail
xyt 2 12/mar/2014 sail
现在我想计算总记录数但是max
我得到的记录数为1但你可以在上面的例子中看到有两个不同的emp_num
记录。我要提取的列是date
,id
和记录计数。
我使用的查询是: -
select date,id,count(*)
from abc
group by date,id;
输出
date id count(*)
12/mar/2014 sail 1
12/mar/2014 sail 1
这正在检索两列,其中计数为1
答案 0 :(得分:2)
根本原因是您忽略了Oracle日期类型的时间部分。它甚至你没有看到它。
示例:
create table foo(id number, date_ date);
insert into foo values(1, sysdate-1/1440);
insert into foo values(1, sysdate);
commit;
alter session set nls_date_format = 'YYYY-MM-DD';
select * from foo;
ID DATE_
------ ----------
1 2015-03-19
1 2015-03-19
select id, date_, count(*)
from foo
group by id, date_;
ID DATE_ COUNT(*)
------ ---------- ----------
1 2015-03-19 1
1 2015-03-19 1
alter session set nls_date_format = 'YYYY-MM-DD HH24:MI:SS';
select * from foo;
ID DATE_
------ -------------------
1 2015-03-19 06:29:13
1 2015-03-19 06:30:14
select id, date_, count(*)
from foo
group by id, date_;
ID DATE_ COUNT(*)
------ ------------------- ----------
1 2015-03-19 06:29:13 1
1 2015-03-19 06:30:14 1