2016-03-22 21 views
1

各地区の最小の郵便番号を見つけましたが、これらの地区の郵便番号のすべての最小値の最大値を探したいと思っています。他の部分を守っている間に最大を行う方法についているIm。ネストされた選択クエリ - mysql sakilaデータベース

select 
    district, 
    postal_code, 
    min(postal_code) from address 
group by district 
having district is not null and district !="" and postal_code>0 
order by district; 

result

+0

あなたの 'GROUP BY'リストにない' postal_code'カラムを選択しています。これを修正する必要があります。 –

答えて

1

のみmax(min_postal_code)は、次の文を使用し、必要な場合。

select max(min_postal_code) 
from (
    select district, min(postal_code) AS min_postal_code 
    from address 
    where district is not null and district !="" and postal_code>0 
    group by district 
    order by district) t 

MAX(min_postal_code)の地区名も必要な場合。次のステートメントを使用します。

select * 
from (select district, min(postal_code) AS min_postal_code 
    from address 
    where district is not null and district !="" and postal_code>0 
    group by district) t 
where t.min_postal_code = 
(
    select max(min_postal_code) 
    from (select district, min(postal_code) AS min_postal_code 
     from address 
     where district is not null and district !="" and postal_code>0 
     group by district) t2 
); 
+0

はい、これは動作します!最後の行(MySqlを使い始めたばかり)の説明をお願いします – nkart1

+0

また、対応する地区名も選択したいのですが? 私はこれを試してみました: "=地区がnullと地区ないアドレス からmin_postal_code AS( 選択地区、分(POSTAL_CODE)から最大(min_postal_code) 、地区を選択 " と地区 によってPOSTAL_CODE> 0 グループ!地区別注文)t; 地区名が間違っています(最大値は正しくありますが、 – nkart1

+0

)投稿を更新しました。もう一度お試しください。 –