2016-05-17 12 views
0

私は以下のように1つのテーブルを持つデータベースを持っています。ここでは、最も多くの医薬品を製造する会社によって製造された医薬品の名前を表示するためのクエリを作成しようとしています。SQLクエリに必要なガイダンス

テーブルを見ると、企業id1と2に属する投薬名が表示されます。これらの会社はこの表に従って最も薬を製造しているためですが、選択のためのクエリを書く方法がわかりません私は前に言った同じ。

ID | COMPANY_ID | MEDICATION_NAME 

1  1   ASPIRIN 

2  1   GLUCERNA 

3  2   SIBUTRAMINE 

4  1   IBUPROFEN 

5  2   VENOFER 

6  2   AVONEN 

7  4   ACETAMINOPHEN 

8  3   ACETAMINO 

9  3   GLIPIZIDE 

ご意見をお寄せください。ありがとう!

+0

画像なしパーティーの男です。画像とコードを提供してください。 – morels

+0

私は今編集しています。 – Ruthra

+0

薬物選択の薬物名はどこでcompany_idですか?(薬物グループからcompany_idを選択してください)。 – Ruthra

答えて

1

これを行う方法はいくつかあります。ここでは第1の最大カウントは、その後、別のサブクエリはその数を持つ企業を取得するために、そして最終的に外側のクエリ結果を返すために取得するために、サブクエリを使用している一つです。

select * 
from yourtable 
where companyid in (
    select companyid 
    from yourtable 
    group by companyid 
    having count(1) = (
    select count(1) cnt 
    from yourtable 
    group by companyid 
    order by 1 desc 
    limit 1 
    ) 
) 
+0

あなたの応答のためのthnkアル..それは私がそれをチェックして – Ruthra

+0

それを得た..!あなたは – Ruthra

0

このクエリは機能するかもしれません。私はテストしていませんが、論理は正しいです

SELECT MEDICATION_NAME 
FROM TABLE where 
COMPANY_ID=(SELECT 
      MAX(counted) 
      FROM (SELECT COUNT(*) AS counted FROM TABLE) AS counts); 
関連する問題