我可以简化sql吗?

Pla*_*Yao -3 sql oracle

sql是:

select count(*)
  from (select *
          from T_LOGGINGINFO
          where to_char(LOGINTIME, 'YYYY-MM') = '2012-05'
          group by USERNAME)
Run Code Online (Sandbox Code Playgroud)

Bob*_*ica 6

简洁是机智(和内衣)的灵魂,但清晰度是代码的灵魂.尝试:

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')
Run Code Online (Sandbox Code Playgroud)

更清晰的IMO,可能更快,因为不必对表中的每一行执行TO_CHAR,并且可能允许使用索引(LOGINTIME, USERNAME).因人而异.

分享和享受.