假设我的桌子是这样的:
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结合起来给出我需要的价值呢?
非常感谢帮助者:)
答案 0 :(得分: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
答案 1 :(得分:1)
因为您在FROM
... FROM ( statement ) x
答案 2 :(得分:1)
select max(dups) from (select count(newCode) as dups from courseTaun group by newCode) as temp1;
答案 3 :(得分:0)
您的SQL命令出现语法错误,但在SQLServer2005 +中您可以编写查询而不使用子查询
SELECT TOP 1 MAX(COUNT(c.newCode)) OVER()
FROM courseTaun c
GROUP BY c.newCode