如何输出最大值

时间:2018-11-05 19:47:35

标签: sql database

我只是想了解如何对查询使用max和count。我有以下代码:

 SELECT SERVICE, COUNT(*)
 FROM SUBSCRIBERS INNER JOIN SERVICE_SUBSCRIBERS ON
 SERVICE_SUBSCRIBERS.LINE=SUBSCRIBERS.PORTID
 GROUP BY SERVICE;

哪个输出:

3WC|12
CFB|17
CWT|20
DSP|16
MSG|25

但是我只想输出最大值(MSG | 25)。我也想知道如何根据特定条件(> 15)输出。我只是不确定如何同时使用函数count和max。

2 个答案:

答案 0 :(得分:1)

您无需在此处使用max-您只需限制返回的行数并使用order by

取决于使用的语法的rdbms,可能非常相似,但是思路仍然相同:

对于SQL Server,MS Access和其他一些数据库,请使用TOP

SELECT TOP 1 SERVICE, COUNT(*)
FROM SUBSCRIBERS 
INNER JOIN SERVICE_SUBSCRIBERS 
    ON SERVICE_SUBSCRIBERS.LINE=SUBSCRIBERS.PORTID
GROUP BY SERVICE
ORDER BY COUNT(*);

对于Oracle,请使用offset...fetch next(也适用于从2012版开始的sql server)

SELECT SERVICE, COUNT(*)
FROM SUBSCRIBERS 
INNER JOIN SERVICE_SUBSCRIBERS 
    ON SERVICE_SUBSCRIBERS.LINE=SUBSCRIBERS.PORTID
GROUP BY SERVICE
ORDER BY COUNT(*)
OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY;

对于MySql,请使用Limit

SELECT SERVICE, COUNT(*)
FROM SUBSCRIBERS 
INNER JOIN SERVICE_SUBSCRIBERS 
    ON SERVICE_SUBSCRIBERS.LINE=SUBSCRIBERS.PORTID
GROUP BY SERVICE
ORDER BY COUNT(*)
LIMIT(1)

答案 1 :(得分:0)

取决于您的特定数据库供应商,您也许可以这样做:

product_id