sql - 如何在 SQL 中从一张表编写双重查询
问题描述
假设我有两种设备可以每天处理点数。我想获得每天的当前点、平均点和最高点。
表结构类似于:
working_date device point_number
2020-03-12 A 1
2020-03-12 A 2
2020-03-12 B 3
2020-03-12 B 4
2020-03-14 A 5
2020-03-14 A 6
2020-03-16 B 7
2020-03-17 A 8
2020-03-17 B 9
每行代表1分。首先,我创建了查询以显示每个日期的点数和设备数
select working_date, count(distinct device), count(point_number) from table1 group by working_date order by working_date
结果是:
working_date points_qty device_qty
2020-03-12 4 2
2020-03-14 2 1
2020-03-16 1 1
2020-03-17 2 2
选择 2020-03-18 作为报告日期,我想获取最后一个 working_date,即 2020-03-17,我想获取当天完成的当前点和设备/点完成的最大点/天。
当前 qty 是来自 points_qty / device_qty 的结果,而最大点数是来自所有 working_date 的最大点数 期望的结果:
report_date last_working_date current_point_qty maximum_qty
2020-03-18 2020-03-17 1 4
我在编写完整查询以获得所需结果时迷失了方向。我应该如何为此编写查询?
提前致谢
解决方案
select (working_date::date + '1 day'::interval) report_date,working_date,
sum(countdevice)/sum(countnumber) current_point_qty, max(countnumber)
maximum_qty from (
select working_date, count(distinct device)countdevice,
count(point_number)countnumber from table1 group by working_date order by working_date )t
group by (working_date::date + '1 day'::interval),working_date
order by working_date desc limit 1
推荐阅读
- python-2.7 - re.search (python) 带有正索引
- symfony - .edi、.seq 和 .xls 的格式
- pycharm - 在 pycharm 中安装 MySQL-Python 时出错
- android - Android Studio 找不到 Firebase
- angular - Angular:在模板中显示数组的原始元素之间的空间
- html - 表格居中对齐
- python - 仅删除引文中句子的特定部分
- json - 放心使用 Jayways Jsonpath?
- android - 将点击事件从浮动应用传递到覆盖应用
- php - 单击“添加”按钮时如何将传递的变量存储到数据库中?