记录sql中的行数

时间:2015-03-18 15:16:26

标签: sql oracle

我有一个表abc,其中包含以下列: -

Table abc

name   emp_num     date        id
xyz        1    12/mar/2014   sail
xyt        2    12/mar/2014   sail

现在我想计算总记录数但是max我得到的记录数为1但你可以在上面的例子中看到有两个不同的emp_num记录。我要提取的列是dateid和记录计数。  我使用的查询是: -

select date,id,count(*)

from abc
group by date,id;

输出

  date        id    count(*)
    12/mar/2014   sail  1
    12/mar/2014   sail  1

这正在检索两列,其中计数为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