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