는 SQL은 다음과 같습니다SQL을 단순화 할 수 있습니까?
select count(*)
from (select *
from T_LOGGINGINFO
where to_char(LOGINTIME, 'YYYY-MM') = '2012-05'
group by USERNAME)
는 SQL은 다음과 같습니다SQL을 단순화 할 수 있습니까?
select count(*)
from (select *
from T_LOGGINGINFO
where to_char(LOGINTIME, 'YYYY-MM') = '2012-05'
group by USERNAME)
브리 비티는 위트 (및 란제리)의 영혼이지만 명확성은 코드의 영혼입니다. 시도 :
SELECT COUNT(DISTINCT USERNAME)
FROM T_LOGGINGINFO
WHERE LOGINTIME BETWEEN TO_DATE('01-MAY-2012 00:00:00', 'DD-MON-YYYY HH24:MI:SS')
AND TO_DATE('31-MAY-2012 23:59:59', 'DD-MON-YYYY HH24:MI:SS')
선명 IMO, 아마 빨리 TO_CHAR 테이블의 모든 행에 대해 실행 할 필요가 없습니다, 그리고 잠재적으로 사용할 수 (LOGINTIME, USERNAME)
에 인덱스를 수있다. YMMV.
공유하고 즐기십시오.
select COUNT(DISTINCT USERNAME)
from T_LOGGINGINFO
where to_char(LOGINTIME,'YYYY-MM')='2012-05'
참고 사항 : 당신이 특정 기능 인덱스가 없다면 to_char(LOGINTIME,'YYYY-MM')
이 LOGINTIME
컬럼에 인덱스를 사용하여 허용하지 않습니다.
+1 란제리 롤 (btw 나는 교리의 요점을 너무 간략하게 구독하는 일이) – Bohemian
"간결은 란제리의 영혼입니다"- [도로시 파커] (http : //www.goodreads. com/author/quotes/24956.Dorothy_Parker) –