SQL:按显示相同值的语句分组?

SQL: Group by statement showing same values?

我有这个 SQL 代码:

select count(req_id), SUBMITS from requests where result='REJECT' GROUP BY SUBMITS

我得到的输出是:

1    16-JUN-17
1    19-JUN-17
1    16-JUN-17
1    16-JUN-17

而我想要:

3    16-JUN-2017
1    19-JUN-2017

您的 SUBMITS 列中可能有您的工具没有显示的小时、分钟、秒;这样,您相信所有这些行都具有相同的 SUBMITS 值,但它们只是日期相同,时间不同。

如果是这样,您只需要将信息限制为一个日期,没有小时,分钟和秒:

select count(req_id), trunc(SUBMITS)
from requests
where result='REJECT'
GROUP BY trunc(SUBMITS)

例如:

SQL> create table requests (submits date, result VARCHAR2(10), req_id NUMBER);

Table created.

SQL> insert into requests (req_id, submits, result) values (1, sysdate, 'REJECT');

1 row created.

SQL> insert into requests (req_id, submits, result) values (2, sysdate, 'REJECT');

1 row created.

SQL> insert into requests (req_id, submits, result) values (3, sysdate, 'REJECT');

1 row created.    

SQL> select count(req_id), trunc(SUBMITS)
  2  from requests
  3  where result='REJECT' 
  4  GROUP BY trunc(SUBMITS);

COUNT(REQ_ID) TRUNC(SUB
------------- ---------
            3 21-JUN-17

SQL> select count(req_id), SUBMITS
  2  from requests
  3  where result='REJECT'
  4  GROUP BY SUBMITS;

COUNT(REQ_ID) SUBMITS
------------- ---------
            1 21-JUN-17
            1 21-JUN-17
            1 21-JUN-17