这个查询了在Postgres 9.2返回与组的最高值相关联的列:不知道如何编写一个查询通过
select max(amount) as max_analyte,concat(sarea,' ',sloc) as location,analyte
from sample natural join station
group by analyte,location
order by max_analyte desc;
返回以下结果:
max_analyte;location;analyte
24196;"CANDLESTICK POINT WINDSURFER CIRCLE";"COLI_TOTAL "
19863;"CHINA BEACH/BAKER BEACH LOBOS CREEK";"COLI_TOTAL "
14136;"CRISSY FIELD EAST";"COLI_TOTAL "
12033;"CHINA BEACH/BAKER BEACH BAKER BEACH WEST";"COLI_TOTAL "
4352;"CHINA BEACH/BAKER BEACH LOBOS CREEK";"COLI_E "
3076;"CHINA BEACH/BAKER BEACH BACKER BEACH EAST";"COLI_TOTAL "
2851;"CHINA BEACH/BAKER BEACH LOBOS CREEK";"ENTERO "
2064;"AQUATIC PARK SHORELINE";"COLI_TOTAL "
1918;"CRISSY FIELD EAST";"ENTERO "
...
...
74;"CHINA BEACH/BAKER BEACH CHINA BEACH";"ENTERO "
41;"CRISSY FIELD WEST";"ENTERO "
41;"OCEAN BEACH NORTH LINCOLN WAY";"ENTERO "
31;"OCEAN BEACH NORTH LINCOLN WAY";"COLI_E "
数据集包含在许多不同的日期在湾区周围的不同位置采样3种细菌(COLI_TOTAL,COLI_E,ENTERO)的水平。上面的查询查找每种类型的细菌在每个位置的最大值,但现在我想找出哪种类型的细菌与每个位置的最大值相关联。我只是不确定如何编写该查询。我应该提到我正在做这些来提高我的SQL技能。感谢您的任何帮助/建议。
的表架构如下:
CREATE TABLE sample
(
analyte character(12),
amount integer,
sdate date,
sid character varying(20)
)
CREATE TABLE station
(
sid character(20),
sarea character varying(24),
sloc character varying(24),
sfreq character varying(24)
)
非常感谢,非常感谢。看到我的后续答案,似乎也有效,但有点短(但非常相似,除非没有结束)。无论如何,无论长短,最好看到不同的解决方案。 –