use*_*389 4 mysql sql sql-server oracle subquery
我在sql下面有一个声明,根据国名进行分组.
SELECT COUNTRY,count(*) FROM DRUG_SEIZURE WHERE COUNTRY IS NOT NULL GROUP BY COUNTRY
Run Code Online (Sandbox Code Playgroud)
结果示例:
Country Count
------- -----
America 20
Saudi Arabia 28
China 10
Japan 14
Kenya 10
Pakistan 12
India 11
Run Code Online (Sandbox Code Playgroud)
我想要前三个最大值的国家.在上面的例子中我只想要:
Country Count
------- -----
Saudi Arabia 28
America 20
Japan 14
Run Code Online (Sandbox Code Playgroud)
取决于您使用的RDBMS:
SQL SERVER:
SELECT TOP 3 COUNTRY, count(*)
FROM DRUG_SEIZURE
WHERE COUNTRY IS NOT NULL
GROUP BY COUNTRY
ORDER BY count(*) DESC
Run Code Online (Sandbox Code Playgroud)
MySQL的:
SELECT COUNTRY, count(*)
FROM DRUG_SEIZURE
WHERE COUNTRY IS NOT NULL
GROUP BY COUNTRY
ORDER BY count(*) DESC
LIMIT 3
Run Code Online (Sandbox Code Playgroud)
甲骨文:
SELECT *
FROM (
SELECT COUNTRY, count(*)
FROM DRUG_SEIZURE
WHERE COUNTRY IS NOT NULL
GROUP BY COUNTRY
ORDER BY count(*) DESC
) mr
WHERE rownum <= 3
ORDER BY rownum;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6792 次 |
| 最近记录: |