Postgresql 按本年度,本月份,本周,今天统计数据
具体的函数和例子可见下面的官网参考
-- 统计本年的数据,按月份展示
SELECT COUNT
( tfn.* ),
EXTRACT ( MONTH FROM tfn.d_logdate ) log_month
FROM
log_func_tb tfn
WHERE
EXTRACT ( YEAR FROM tfn.d_logdate ) = EXTRACT ( YEAR FROM NOW( ) )
GROUP BY
EXTRACT ( MONTH FROM tfn.d_logdate )
-- 统计本月的数据,按天(1-31)展示
SELECT COUNT
( tfn.* ),
EXTRACT ( DAY FROM tfn.d_logdate ) log_day
FROM
log_func_tb tfn
WHERE
EXTRACT ( YEAR FROM tfn.d_logdate ) = EXTRACT ( YEAR FROM NOW( ) )
AND EXTRACT ( month FROM tfn.d_logdate ) = EXTRACT ( month FROM NOW( ) )
GROUP BY
EXTRACT ( DAY FROM tfn.d_logdate )
注意:
- DOW 周日(0) -> 周一 (6) // 下面没有使用
- isodow 周一(1) -> 周日 (7)
-- 统计本周的数据,按星期几展示
SELECT COUNT
( tfn.* ),
EXTRACT ( isodow FROM tfn.d_logdate ) log_isodow
FROM
log_func_tb tfn
WHERE
EXTRACT ( YEAR FROM tfn.d_logdate ) = EXTRACT ( YEAR FROM NOW( ) )
AND EXTRACT ( WEEK FROM tfn.d_logdate ) = EXTRACT ( WEEK FROM NOW( ) )
GROUP BY
EXTRACT ( isodow FROM tfn.d_logdate )
-- 统计今天的数据,按小时展示
SELECT COUNT
( tfn.* ),
EXTRACT ( HOUR FROM tfn.d_logdate ) log_hour
FROM
log_func_tb tfn
WHERE
DATE ( tfn.d_logdate ) = CURRENT_DATE
GROUP BY
EXTRACT (
HOUR
FROM
tfn.d_logdate
)