首页 > 解决方案 > 具有汇总统计数据的 SQL 查询,按日期分组

问题描述

我试图解决一个问题,即查询系统的统计概览。我要从中提取数据的表称为“事件”,并包含以下列(除其他外,仅发布必要的列):

另一个最可能需要的表是“位置”,其中包含以下列:

我想要的是按天分组的不同条件下的事件总和。用户可以在想要的天数范围内提供输入,这意味着输出应该只在给定的限制内每天显示一条线。列应如下所示:

因此,一行应该显示给定日期在不同标准下的总和。

我在 SQL 方面读得相当好,但我的经验很低,这导致我在这里问。

任何帮助,将不胜感激

标签: sqldatabasestatistics

解决方案


SQL Server 既没有时间戳也没有布尔值,所以我将为 MySQL 回答这个问题。

select date(date),
       sum( e.eventtype = 'sightingDelivered' and l.clinic) as deliverySum,
       sum( e.eventtype = 'sightingPickup' and l.clinic) as pickupSum,
       sum( e.position_id = 4000 ) as rejectedSum,
       sum( e.position_id = 3000 ) as acceptedSum
from event e left join
     location l
     on e.position_id = l.id
where date >= $date1 and date < $date2 + interval 1 day
group by date(date);

推荐阅读