以下是查詢。 closed_ts是一個時間戳列。我想要做的是,查明今年,本月,今年和本週有多少人「關閉」。有一個更好的方法嗎?Oracle查詢優化幫助(涉及TRUNC)
select table_id,
case
when trunc(closed_ts) = trunc(SYSDATE, 'DD') then 1
else 0
end as day_count,
case
when trunc(closed_ts) >= trunc(SYSDATE, 'MM') then 1
else 0
end as month_count,
case
when trunc(closed_ts) >= trunc(sysdate, 'YYYY') then 1
else 0
end as year_count,
case
when trunc(closed_ts) >= TRUNC(sysdate, 'IW') then 1
else 0
end as week_count
from myTable
沒有where子句,是否存在closed_ts上的索引是無關的 – Jeff
我正在求和和分組。我只是沒有將它包含在我原來的查詢中以求簡潔。我們確實在closed_ts上有索引。我會嘗試> =沒有trunc(closed_ts)。感謝您及時的回覆。 –