Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Chọn Dữ liệu Tối đa từ SQL Truy vấn Con, nhưng nó Hiển thị Tất cả Kết quả từ Truy vấn Con

Giải pháp đầu tiên sử dụng where điều kiện:

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 Bản trình diễn

Giải pháp thứ 2 sử dụng having điều kiện:

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 Bản trình diễn



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysqldump với tạo dòng cơ sở dữ liệu

  2. Lỗi kết nối SSL khi sử dụng Trình kết nối MySQL với Python

  3. Nhận tất cả người dùng ngoại trừ quản trị viên trong mối quan hệ nhiều người

  4. SQL - Tìm ngày gần nhất với ngày hiện tại

  5. Cách tốt nhất để thiết kế một API REST với nhiều bộ lọc?