gpt4 book ai didi

sql - 复杂的SQL查询-嵌套查询

转载 作者:行者123 更新时间:2023-12-03 18:37:33 24 4
gpt4 key购买 nike

这是job_form表...

job_num  | name | address |
---------+------+---------+
1 | Tom | Smith |
2 | John | Doe |
3 | Max | Smith |


这是personal_job表...

job_num  | date       | description   |
---------+------+---------------------+
1 | 23-01-2012 | Eat food |
1 | 24-01-2012 | Do dishes |
1 | 25-01-2012 | Sweep floor |
... | ... | ... |
2 | 19-05-2013 | Play games |
2 | 23-05-2013 | Do code |
2 | 27-05-2013 | Sleep |
... | ... | ... |
3 | 23-05-2013 | Eat food |
3 | 24-05-2013 | Do dishes |
3 | 25-05-2013 | Sweep floor |
... | ... | ... |


我想创建一个查询,为每个job_form提取一行,其中包括要完成的第一个作业的日期,要完成的最后一个作业的日期以及表单上列出的作业总数。该查询仅需要显示具有将来需要完成的作业的作业表单。

示例是:

job_num  |  first_job_date  |  last_job_date  |  count_of_jobs  |  name
---------+------------------+-----------------+-----------------+-------------
2 | 19-05-2013 | 27-05-2013 | 3 | John
3 | 23-05-2013 | 25-05-2013 | 3 | Max


我已经有好几年没有做SQL了,而这完全使我感到困惑。我知道我必须做一个嵌套查询,但是无法计算出顺序...

任何帮助,不胜感激。

已更新,在结果中包含名称列(对此遗忘,对不起)

最佳答案

根据戈登编辑,如果您不需要任何job_form特定字段,则无需加入。但是,如果您这样做(例如,姓名或地址),则:

SELECT jf.job_id,
jf.name,
MIN(ij.date) AS first_job_date,
MAX(ij.date) as last_job_date,
COUNT(*) as count_of_jobs
FROM job_form jf
INNER JOIN individual_job ij
ON jf.job_num = ij.job_num
GROUP BY jf.job_id, jf.name -- i.e. non-aggregated select fields here

关于sql - 复杂的SQL查询-嵌套查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16463544/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com