我有一个有一个表的数据库,如下所示。在这里,我试图写一个查询来显示由生产最多药品的公司生产的药品的名称。
通过查看表格,我们可以说出属于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
请分享你的建议。谢谢!
发布于 2016-05-17 14:39:55
做这件事的几种方法。首先使用子查询获取最大计数,然后使用另一个子查询获取具有该计数的公司,最后使用外部查询返回结果:
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
)
)
发布于 2016-05-17 14:45:13
此查询可能有效。我还没有测试过,但逻辑是正确的。
SELECT MEDICATION_NAME
FROM TABLE where
COMPANY_ID=(SELECT
MAX(counted)
FROM ( SELECT COUNT(*) AS counted FROM TABLE ) AS counts);
https://stackoverflow.com/questions/37278843
复制相似问题