[英]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.