2
SELECT MAX( t.valuesum ) AS total, t.codebook
FROM (
    SELECT SUM( value ) AS valuesum, codebook
    FROM stock
    GROUP BY codebook
) t
GROUP BY t.codebook

サブクエリでは、出力は次のとおりです。

b001 35,
b002 20,
b0003 11

見たいのは: b001 35. 助けてください。

4

5 に答える 5

3

条件を使用した最初のソリューションwhere:

SELECT t1.valuesum, t1.codebook
FROM (
        SELECT SUM( s.value ) AS valuesum, s.codebook
        FROM stock s
        GROUP BY s.codebook
     ) t1
WHERE t1.valuesum in (SELECT MAX( t2.valuesum ) AS total
                     FROM (
                             SELECT SUM( s2.value ) AS valuesum, s2.codebook
                             FROM stock s2
                             GROUP BY s2.codebook
                           )t2
                     ) 

SQL フィドルのデモ

条件を使用した2番目のソリューションhaving:

SELECT max(t1.valuesum), t1.codebook
FROM (
        SELECT SUM( s.value ) AS valuesum, s.codebook
        FROM stock s
        GROUP BY s.codebook
     ) t1
GROUP BY t1.codebook
HAVING max(t1.valuesum) = (SELECT MAX( t2.valuesum ) AS total
                     FROM (
                             SELECT SUM( s2.value ) AS valuesum, s2.codebook
                             FROM stock s2
                             GROUP BY s2.codebook
                           )t2
                     )

SQL フィドルのデモ

于 2012-09-24T09:48:07.967 に答える
2

これを試して

SELECT SUM( value ) AS valuesum, codebook 
FROM stock 
GROUP BY codebook
ORDER BY valuesum DESC
LIMIT 1
于 2012-09-24T09:44:18.143 に答える
0

(コメントとエラー メッセージから) MySQL を使用していると仮定すると、次のようになります。

SELECT SUM( value ) AS valuesum, codebook
FROM stock
GROUP BY codebook
ORDER BY valuesum DESC
  LIMIT 1 ;
于 2012-09-24T09:52:36.167 に答える
0

これを試して

SELECT TOP 1 * FROM
(
  SELECT SUM([value]) AS valuesum, codebook
  FROM stock
  GROUP BY codebook
)
ORDER BY valuesum DESC
于 2012-09-24T09:42:35.923 に答える