查询今天的记录:
update table set col= (1-1)* -1; // return 0;
查询当月记录:
SELECT FIELD1, COUNT(1) AS "TODAY_COUNT" FROM TABLE1
WHERE DATEFIELD >= TRUNC(SYSDATE)
GROUP BY FIELD1;
需要在单个SELECT FIELD1, COUNT(1) AS "THIS_MONTH_COUNT" FROM TABLE1 WHERE
EXTRACT(YEAR FROM DATEFIELD) = EXTRACT(YEAR FROM SYSDATE) AND
EXTRACT(MONTH FROM DATEFIELD) = EXTRACT(MONTH FROM SYSDATE)
GROUP BY FIELD1;
语句中显示两个值。
我怎样才能有效地做到这一点?
预期输出:
SELECT
答案 0 :(得分:0)
添加第一个选择作为其他选择列:
SELECT COUNT(1) AS "THIS_MONTH_COUNT" ,
(SELECT COUNT(1) FROM TABLE1 WHERE DATEFIELD >= TRUNC(SYSDATE)) AS "TODAY_COUNT"
FROM TABLE1 WHERE
EXTRACT(YEAR FROM DATEFIELD) = EXTRACT(YEAR FROM SYSDATE) AND
EXTRACT(MONTH FROM DATEFIELD) = EXTRACT(MONTH FROM SYSDATE);
答案 1 :(得分:0)
您表中的'Sysdate'是build.gradle
列吗?如果是这样:
date
答案 2 :(得分:0)
有条件聚合:
SELECT
FIELD1,
SUM(CASE WHEN DATEFIELD >= TRUNC(SYSDATE) THEN 1 ELSE 0 END) today_count,
SUM(CASE WHEN
EXTRACT(YEAR FROM DATEFIELD) = EXTRACT(YEAR FROM SYSDATE)
AND
EXTRACT(MONTH FROM DATEFIELD) = EXTRACT(MONTH FROM SYSDATE))
THEN 1
ELSE 0
END) This_month_count
FROM TABLE1
GROUP BY FIELD1;
答案 3 :(得分:0)
通过总结相关天数来使用decode
可能是一种简短的方法:
select field1,
sum(decode(to_char(datefield,'yyyymm'),to_char(sysdate,'yyyymm'),1,0)) as "This month's count",
sum(decode(sign(trunc(datefield)-trunc(sysdate)+1),1,1,0)) as "Today's count"
from table1 t
group by field1;