簡體   English   中英

SQL查詢所需的指導

[英]Guidance required for sql query

我有一個帶有一個表的數據庫,如下所示。 在這里,我試圖編寫一個查詢來顯示由生產最多葯物的公司生產的葯物名稱。

通過查看該表,我們可以說出屬於公司ID 1和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

請分享您的建議。 謝謝!

有幾種方法可以做到這一點。 這是一個首先使用子查詢獲取最大計數的子查詢,然后使用另一個子查詢獲取具有該計數的公司的查詢,最后使用外部查詢返回結果:

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

該查詢可能有效。 我尚未測試,但邏輯是正確的

SELECT MEDICATION_NAME 
FROM TABLE where 
COMPANY_ID=(SELECT 
           MAX(counted) 
           FROM ( SELECT COUNT(*) AS counted FROM TABLE ) AS counts);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM