1

假设我的桌子是这样的:

id  code    newCode
-------------------
1   30002   3000231
2   30002   3000232
3   30002   300021
4   30002   300021
5   30009   300093
6   30009   300093
7   30012   3001231
8   30012   3001232
9   30012   300124
10  30012   300121
11  30012   300121
12  30013   3001331
13  30013   3001332
14  30013   300134

我想获得最多的重复项newCode(在这种情况下为 2 - 例如 num 10 和 11 相同,所以 2)

我的 SQL 命令是:

SELECT MAX(c.newCode)
FROM
            SELECT COUNT(c.newCode)
            FROM courseTaun c
            GROUP BY c.newCode

我只是得到语法错误。

如果我只运行:

SELECT COUNT(c.newCode)
            FROM courseTaun c
            GROUP BY c.newCode

我得到:

COUNT(c.newCode)
2
1
1
2
2
1
1
1
1
1
1

如果我只跑

SELECT MAX(c.newCode)
FROM courseTaun c

我得到值:300134

为什么我似乎不能将 2 结合起来给我需要的价值?

非常感谢帮助者:)

4

4 回答 4

1
select max(dups) from (select count(newCode) as dups from courseTaun group by newCode) as temp1;
于 2013-02-17T14:37:45.390 回答
1

我猜 NewCode列被保存为string. 为了获得最大值,您需要先将其转换为数字,

SELECT  MAX(CAST(newCode as SIGNED))
FROM
(
    SELECT  newCode
    FROM    tableName
    GROUP   BY newCode
    HAVING  COUNT(*) > 1
) s

更新 1

SELECT  MAX(CAST(newCode as INT))
FROM
(
    SELECT  newCode
    FROM    table1
    GROUP   BY newCode
    HAVING  COUNT(*) > 1
) s
于 2013-02-17T13:44:51.600 回答
1

因为你后面缺少括号FROM

... FROM ( statement ) x
于 2013-02-17T13:45:57.117 回答
0

您的 SQL 命令出现语法错误,但在 SQLServer2005+ 中,您可以像这样编写没有子查询的查询

SELECT TOP 1 MAX(COUNT(c.newCode)) OVER()
FROM courseTaun c
GROUP BY c.newCode
于 2013-02-17T22:45:46.930 回答