PostGreSql中统计表中每天的数据,并统计每天的回复数,未回复数以及未回复占比(显示百分比)

前言

要在 PostgreSQL 中统计表中每天的数据,并统计每天的回复数、未回复数以及未回复占比,并以百分比形式显示,你可以使用以下 SQL 查询。假设你有一个名为 "messages" 的表,其中包含消息的时间戳列 "timestamp" 和一个指示消息是否已回复的列 "replied"(1 表示已回复,0 表示未回复):

代码示例

SELECT
    date_trunc('day', timestamp) AS day,
    COUNT(*) AS total_messages,
    SUM(CASE WHEN replied = 1 THEN 1 ELSE 0 END) AS replied_messages,
    SUM(CASE WHEN replied = 0 THEN 1 ELSE 0 END) AS unreplied_messages,
    (ROUND((SUM(CASE WHEN replied = 0 THEN 1 ELSE 0 END)::numeric / COUNT(*)) * 100, 2)) || '%' AS unreplied_percentage
FROM messages
GROUP BY day
ORDER BY day;

总结

在这个查询中,我们使用 || 运算符将计算的未回复百分比结果和百分号字符串进行连接。这将在结果中添加百分号,以表示未回复百分比。查询结果将包括每天的日期、总消息数、已回复消息数、未回复消息数以及未回复消息的百分比(包括百分号)。你可以根据需要调整查询,以适应你的数据和显示需求

你可能感兴趣的:(PostGreSQL,postgresql,数据库)