我有一个表,其中包含两个不同的列:a_id和b_id。
我想要处理这两列,并计算每列中不同的作业in数,然后进行报告。最终,我希望确定在任何给定的一天创建了多少个作业,以及在任何给定的一天完成了多少个作业。
我开始编写一个粗略的查询来尝试解决这个问题,但我意识到select distinct比我想象的要复杂得多。我还写了一个名为total_jobs的专栏,我认为应该有两个专栏:基于job_created_date和job_completed_date的total jobs created和total jobs completed。有点迷路了。
SELECT
job_created_date,
job_completed_date,
category,
COUNT(
SELECT
DISTINCT a_id, b_id
FROM my_data_table
) AS total_jobs
FROM my_data_table
WHERE
ds BETWEEN '<DATEID-8>' AND '<DATEID-1>'
GROUP BY
1, 2, 3, 4我希望输出结果可以帮助我创建一个条形图,条形图上的日期在x轴上,堆叠的条形图表示当天创建的作业数和当天要完成的剩余作业数。
发布于 2019-06-23 01:13:32
我不知道您的数据是什么样子,但我可以推测您的每个作业有一行,对于已完成的作业,job_completed_date是非NULL的。
如果是这样的话,你可以这样做:
SELECT t.*,
COUNT(*) OVER () as total_jobs,
COUNT(job_complete) as total_completed_jobs
FROM my_data_table t
WHERE t.ds BETWEEN '<DATEID-8>' AND '<DATEID-1>';https://stackoverflow.com/questions/56716579
复制相似问题