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

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 に答える
1
select max(dups) from (select count(newCode) as dups from courseTaun group by newCode) as temp1;
于 2013-02-17T14:37:45.390 に答える
0

あなたのSQLコマンドは構文エラーを取得しますが、SQLServer2005+では、このようにサブクエリなしでクエリを書くことができます

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