2016-05-18 13 views
0

複数のカウントに基づいてテーブルから特定のアイテムをリストする方法を教えてください。複数のカウントに基づくMySQLの選択

表のcountrylanguageテーブルは、私がこれまでのところ、このコードで出ているが、これは私の右出力

select countrycode, Language, IsOfficial, count(*) 

from 

countrylanguage 

group by countrycode 

を与えるものではありませんし、サンプル出力が似ているフォーム

CountryCode,  Language, IsOfficial, Percentage** 
ABW    Dutch  T    5.3 
AFG    Balochi  F    0.9 
AFG    Dari   T    32.1 

でありますこの:

サンプル出力

例:「アイマラ」はボリビアとペルーの公用語であり、チリでも公用語としては使われていません。だから、クエリがレコードを返す必要があります:それは2カ国(ナミビア、南アフリカ)で話されますので、

Aimara Bolivia T 
Aimara Chile F 
Aimara Peru T 

が、例えば「アフリカーンス語」が返されるべきではありませんが、それは1で唯一の公式です。

複数の国で公式に使用されている各言語について、その言語が話されている各国の名前(その国で公式であるかどうかを示す)をどのようにリストできますか?

答えて

1

あなたが持つと句でサブクエリを使用することができますが、2以上のプライマリ言語であることのあなたの条件に合うもののみのリストに言語をフィルタリングすることができますcorrelated subqueryを使用して

select countrycode, Language, IsOfficial 
    where language in 
    (select Language 
    from countrylanguage 
    where IsOfficial = 'T' 
    having count(*)>1 
    group Language) 

order by language; 
0

各国。

SELECT Language, CountryCode, isOfficial 
FROM countrylanguage 
WHERE Language IN (
    SELECT Language 
    FROM countrylanguage 
    WHERE isOfficial = "T" 
    GROUP BY Language 
    HAVING COUNT(*) > 1) 
ORDER BY Language 
+0

このコードスニペットは、(// meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)[説明を含む]、疑問を解決するかもしれないが、実際の品質を向上させることができますあなたの投稿。将来読者の質問に答えていることを覚えておいてください。そうした人々はあなたのコード提案の理由を知らないかもしれません。あなたのコードに説明的なコメントを詰め込まないようにしてください。これは、コードと説明の両方の可読性を低下させます! –

+0

偉大な答え。できます!! – blueGOLD

関連する問題