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)
)