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
我有这个 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