Mysql
 sql >> база данни >  >> RDS >> Mysql

Изберете Max Data from Subquery SQL, но показва всички резултати от Subquery

Първо решение с помощта на 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 Fiddle Демо

Второ решение с помощта на 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 Fiddle Демо



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изявление за избор на MySQL с CASE или IF ELSEIF? Не сте сигурни как да получите резултата

  2. Как да извика съхранена процедура на MySQL от PHP код?

  3. Защо да използвате рамки? Убедете ме, че трябва да разбера Zend Framework и да го използвам

  4. Как да приложите пагинация към резултата от заявката SHOW TABLES в PHP

  5. Как правилно да затворя връзката с източник на данни?