繁体   English   中英

sql查询查找每个业务的最早日期

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM