sql - 具有汇总统计数据的 SQL 查询,按日期分组
问题描述
我试图解决一个问题,即查询系统的统计概览。我要从中提取数据的表称为“事件”,并包含以下列(除其他外,仅发布必要的列):
- 日期(作为时间戳)
- positionId(作为数字)
- eventType(作为字符串)
另一个最可能需要的表是“位置”,其中包含以下列:
- id(作为数字)
- 诊所(作为布尔值)
我想要的是按天分组的不同条件下的事件总和。用户可以在想要的天数范围内提供输入,这意味着输出应该只在给定的限制内每天显示一条线。列应如下所示:
- date:日期,按天分组数据
- deliverySum:给定日期的条目总和,其中 eventType 为 'sightingDelivered',并且 id=posiitonId 的 Location 具有 Clinic=true
- PickSum:与deliverySum相同,但eventType为'sightingPickup'
- deniedSum:当天事件的总和,其中 positionId 为 4000
- AcceptedSum:和rejectedSum一样,但是positionId是3000
因此,一行应该显示给定日期在不同标准下的总和。
我在 SQL 方面读得相当好,但我的经验很低,这导致我在这里问。
任何帮助,将不胜感激
解决方案
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);
推荐阅读
- java - 结合 CRFClassifier 和 RegexNERSequenceClassifier 模型输出 - Stanford Core NLP
- c++ - 标准 main 和 unicode,管理控制台输入和输出
- swift - 如何使用文件描述符快速转移写入文件?
- html - Bootstrap 4 容器重叠前一个容器
- c++ - 指向模板类的指针
- javascript - 如何将流媒体服务中的音乐传递到 HTML5
- reactjs - 使用 React Router 保护 React 应用程序中的路由
- r - ViSEAGO 教程:可视化 topGO 对象
- excel - VBA将公式插入表格非常慢
- c# - 创建一个使数组循环的方法