我有一个含有化学数据的数据库。我的字段是站点、日期和分析。每隔几天收集一次样品,并对样品进行硝酸盐、亚硝酸盐或磷的检测。但是这三个测试并不是在所有的日子里都做的;有些时候,只做了一到两个测试。
我想计算所有三个测试都完成的实例。我有一个简单的聚合函数:
Select site, date, analyte
from myTable
group by site, date, analyte
order by site, date, analyte但这不对。我只想返回所有三个测试都是在一天内在一个站点进行的数据集(即完整的数据集)。我只想知道所有三个测试的日期。
任何帮助都是非常感谢的。
发布于 2019-10-15 21:30:20
如果您正在按站点/日期查找完整的数据集,那么我认为您需要:
select site, date
from mytable
where analyte in ('nitrate', 'nitrite', 'phosphorus') -- may not be necessary
group by site, date
having count(distinct analyte) = 3;发布于 2019-10-15 21:30:50
可以通过向现有查询中添加一个(site, date, analyte)子句来检查每个having元组是否有3条记录可用:
select site, date, analyte
from myTable
group by site, date, analyte
having count(*) = 3
order by site, date, analytehttps://stackoverflow.com/questions/58402870
复制相似问题