方案 01SQL
SELECT l.name,
AVG(m.resp_mg) AS avg_dust
FROM measurements m
JOIN locations l ON m.loc_id = l.id
JOIN sites s ON l.site_id = s.id
WHERE s.name = 'Isfjorden Silicon'
AND m.time >= NOW() - INTERVAL '1 month'
GROUP BY l.name
ORDER BY avg_dust DESC;所需:表结构、访问权限、SQL 技能
方案 02REST
GET /api/sites
?name=Isfjorden+Silicon
GET /api/locations
?site_id=42
GET /api/measurements
?locations=101,102,103,104
&start=2026-01-01T00:00:00Z
&end=2026-02-01T00:00:00Z
&types=resp_mg_per_m3
所需:API 密钥、胶水代码、客户端排序
方案 03Python
sites = api.get_sites(
name="Isfjorden")
locs = api.get_locations(
site_id=sites[0].id)
data = api.get_measurements(
locations=[l.id for l in locs],
start="2026-01-01",
end="2026-02-01",
types=["resp_mg_per_m3"])
sorted(data,
key=lambda x: x.avg,
reverse=True)所需:SDK、Python 环境、部署
方案 04MCP
“列出 Isfjorden Silicon 的所有点位以及上个月的粉尘状况,按暴露量从高到低排序。”
一句话。剩下的交给模型。Arpuro