![](/img/trans.png)
[英]SQL Query to return all rows with the earliest date available for each year
[英]sql query finding the earliest date for each bussiness
已经编写了一个连接两个表的 SQL 查询 - 一个包含企业,另一个包含它们被检查的日期。 企业可能会被检查 0 次、1 次或多次。
我正在使用的数据库可以在这里找到
sql_query = """\
SELECT
MIN(ins.date) as min_date,
MAX(ins.date) as max_date
FROM businesses as res
INNER JOIN inspections as ins
ON res.business_id == ins.business_id
WHERE ins.Score NOT NULL
"""
此查询提供检查任何企业的第一个日期和最晚日期,但我想生成一个表格,显示检查每个企业的第一个和最后一个日期。
我不知道该怎么做!
您只需要按业务 id 分组,那么 min 和 max 函数将返回该业务所有检查的数据
SELECT
MIN(ins.date) as min_date,
MAX(ins.date) as max_date
FROM businesses as res
INNER JOIN inspections as ins
ON res.business_id == ins.business_id
WHERE ins.Score NOT NULL group by ins.business_id
你不需要join
了查询,你有你的问题:
SELECT ins.business_id, MIN(ins.date) as min_date,
MAX(ins.date) as max_date
FROM inspections ins
WHERE ins.Score NOT NULL;
好吧,如果——例如—— inspections
中的行没有有效的business_id
,您将需要一个JOIN
。 但我假设表格结构正确。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.