的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)
索引使用速度更快。因人而異。
分享和享受。
select COUNT(DISTINCT USERNAME)
from T_LOGGINGINFO
where to_char(LOGINTIME,'YYYY-MM')='2012-05'
的說明:to_char(LOGINTIME,'YYYY-MM')
將不允許使用索引LOGINTIME
列,除非你有一個特別的功能指標。
+1內衣大聲笑(順便說一句,我碰巧認爲簡短的教條點) – Bohemian
「簡潔是內衣的靈魂」 - [多蘿西帕克](http://www.goodreads。 COM /作家/報價/ 24956.Dorothy_Parker) –